FMUSER Wirless Jittrażmetti Vidjo U Awdjo Aktar Faċli!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikans
sq.fmuser.org -> Albaniż
ar.fmuser.org -> Għarbi
hy.fmuser.org -> Armenjan
az.fmuser.org -> Ażerbajġan
eu.fmuser.org -> Bask
be.fmuser.org -> Belarussu
bg.fmuser.org -> Bulgaru
ca.fmuser.org -> Katalan
zh-CN.fmuser.org -> Ċiniż (Simplifikat)
zh-TW.fmuser.org -> Ċiniż (Tradizzjonali)
hr.fmuser.org -> Kroat
cs.fmuser.org -> Ċek
da.fmuser.org -> Daniż
nl.fmuser.org -> Olandiż
et.fmuser.org -> Estonjan
tl.fmuser.org -> Filippin
fi.fmuser.org -> Finlandiż
fr.fmuser.org -> Franċiż
gl.fmuser.org -> Galizjan
ka.fmuser.org -> Ġorġjan
de.fmuser.org -> Ġermaniż
el.fmuser.org -> Grieg
ht.fmuser.org -> Creole Ħaiti
iw.fmuser.org -> Ebrajk
hi.fmuser.org -> Ħindi
hu.fmuser.org -> Ungeriż
is.fmuser.org -> Iżlandiż
id.fmuser.org -> Indoneżjan
ga.fmuser.org -> Irlandiż
it.fmuser.org -> Taljan
ja.fmuser.org -> Ġappuniż
ko.fmuser.org -> Korean
lv.fmuser.org -> Latvjan
lt.fmuser.org -> Litwan
mk.fmuser.org -> Maċedonjan
ms.fmuser.org -> Malajan
mt.fmuser.org -> Malti
no.fmuser.org -> Norveġiż
fa.fmuser.org -> Persjan
pl.fmuser.org -> Pollakk
pt.fmuser.org -> Portugiż
ro.fmuser.org -> Rumen
ru.fmuser.org -> Russu
sr.fmuser.org -> Serb
sk.fmuser.org -> Slovakk
sl.fmuser.org -> Sloven
es.fmuser.org -> Spanjol
sw.fmuser.org -> Swaħili
sv.fmuser.org -> Svediż
th.fmuser.org -> Tajlandiż
tr.fmuser.org -> Tork
uk.fmuser.org -> Ukrain
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vjetnamiż
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddix
1. Kif tuża l-modulu streaming RTMP fid-Demo
(1) Għal cross-platform, l-aħħar verżjoni tbiddel il-modulu streaming rtmp għal c ++, u l-indirizz streaming RTMP jista 'jiġi modifikat fil-metodu doublesky_rtmp :: p_start_rtmp () ta' doublesky_rtmp.cpp
(2) Sabiex ikun għażżien, l-awtur ma analizzax sps u pps mill-fajl h264 li ried jimbotta, iżda kiteb sps u pps fil-parametru sps_pps tal-metodu p_start_rtmp. Jekk trid timbotta l-fajl h264 tiegħek stess, ftakar li timmodifikah Hawnhekk, inkella n-nixxiegħa li mbuttajt tiġi skrinjata, kważi nsejt hawn, u qed nistaqsi kif nibdel il-fajl biex iniedi n-nixxiegħa.
2. Twettiq ta 'ideat
Għadu bbażat fuq ffmpeg biex jinkapsula, il-proċess ġenerali huwa
1. AVFormatContext及其中的AVIOContext、AVOutputFormat初始化,调用函数为avio_open与av_guess_format
2. 开启rtmp推流avformat_write_header
3. 写入音视频帧数据av_interleaved_write_frame
3. Tagħlim tal-protokoll u analiżi tal-qbid tal-pakketti
L-unità bażika tal-protokoll RTMP hija Korp tal-Messaġġ, u l-messaġġ huwa maqsum f'RMPMP Chunk Header + RTMP Chunk Data waqt it-trasmissjoni tad-data.
Jekk messaġġ huwa ta ’300 byte, id-daqs default ta’ RTMP Chunk Data ġeneralment huwa ta ’128 byte, allura dan il-messaġġ ta’ 300 byte huwa maqsum fi
L-ewwel pakkett: RTMP Chunk Header + 128 byte payload
It-tieni pakkett: RTMP Chunk Header + 128 byte payload
It-tielet pakkett: RTMP Chunk Header + 44 byte payload
RTMP Chunk Header huwa magħmul minn Header Bażiku + Header tal-Messaġġ + TimeStamp Estiż
Header Bażiku: 1-3 bytes Hawnhekk rajt biss 1 byte fil-proċess tal-qbid tal-pakketti, għalhekk tanalizza biss il-format ta '1 byte.
0 1 2 3 4 5 6 7 Total ta '8 ċifri: 0-1 ċifri jindikaw Format, li huwa t-tul tal-Intestatura tal-Messaġġ, u ċ-ċifri 2-7 jindikaw Chunk Stream ID
Meta l-Format huwa 00, it-tul tal-Header tal-Messaġġ huwa ta ’11 bytes: TimeStamp (3 bytes) + MessageLength (3 bytes) + MessageTypeID (1 byte) + MessageStreamID (4 bytes)
Meta l-Format huwa 01, it-tul tal-Header tal-Messaġġ huwa ta '7 bytes: TimeStamp (3 bytes) + MessageLength (3 bytes) + MessageTypeID (1 byte)
Meta l-Format huwa 10, it-tul tal-Header tal-Messaġġ huwa 3 bytes: TimeStamp (3 bytes)
Meta l-Format huwa 11, it-tul tal-Header tal-Messaġġ huwa 0 bytes: xejn
Hawnhekk insibu screenshot tal-qbid tal-pakkett ta 'Wireshark biex tanalizza l-protokoll korrispondenti:
Kif tista 'tara fil-Figura 1, l-ewwel byte huwa 03, iż-żewġ bits ta' fuq jirrappreżentaw il-Format ta 'Header Bażiku bħala 00, li jfisser li t-tul tal-Header tal-Messaġġ huwa 11 bytes komplut, l-ID tal-Fluss taċ-Ċokka tal-Header Bażiku huwa 3 , u d-Daqs tal-Korp huwa wkoll Huwa MessageLength, li jfisser li d-dejta tal-payload tal-Korp RTMP li ġej huwa 141 bytes, u l-MessageTypeID huwa 0x14. Hawn, ejja nitkellmu dwar il-qasam Tip ta 'Messaġġ. Meta huwa 1-7, huwa messaġġ ta 'kontroll tal-protokoll. 8 u 9 jindikaw li l-korp RTMP huwa dejta awdjo u vidjo. -20 hija dejta f'format ta 'kodifikazzjoni AMF. AMF encoding huwa format ta 'kodifikazzjoni żviluppat minn Adobe. Rabta għal informazzjoni relatata tingħata aktar tard, u studenti interessati jistgħu jagħtu ħarsa.
4. Aqsam frejms awdjo u vidjo f'pakketti multipli RTMP
Kif imsemmi qabel, id-daqs awtomatiku tad-Data Chunk RTMP fil-protokoll huwa ta '128 byte, imma kulħadd jaf li anke l-qafas tal-vidjow ikkompressat huwa kbir ħafna. Immaġina jekk qafas tal-vidjow ta '100,000 byte huwiex 128 byte. Jekk taqsamha bl-unità, trid taqsamha f'aktar minn 780 pakkett, u għandek bżonn aktar minn 780 RTMP Chunk Headers. Dan mhux biss jikkawża sensja tad-dejta, iżda l-imballaġġ u l-iggruppar tal-mittent u r-riċevitur jikkunsmaw ukoll il-prestazzjoni. Għalhekk, nistgħu naraw li fil-proċess li timbotta n-nixxiegħa, hemm pakkett ta 'protokoll ta' Set Chunk Size biex tissettja d-daqs tad-Data Chunk kif muri fil-Figura 2. Hawnhekk tista 'tara li se jkun hemm Tip ID ta' 01 qabel l-ispinta, li tistabbilixxi d-daqs tad-Daqs tal-Biċċa RTMP. Pakkett, hawn naraw li l-valur stabbilit huwa 4096.
Il-pass li jmiss huwa li tħares lejn il-qsim tal-pakkett tal-vidjow. Qafas tal-vidjow kbir huwa maqsum f'pakketti ta 'blokki multipli, iżda wireshark mhuwiex ikkonvertit f'pakketti RTMP iżda kollha rikonoxxuti bħala pakketti TCP. Hawnhekk għamilt lili nnifsi niddubita l-fehim tal-RTMP. Hemm żball, ir-riżultat tal-qbid tal-pakkett huwa muri fil-Figura 3
Hawnhekk tista 'tara li n-numru ta' fuq fil-Figura 3 huwa 3292 (l-ewwel ringiela). Ir-ringiela magħżula ta 'dejta għandha tul totali ta' 78 byte u t-tagħbija ta 'TCP hija ta' 12-il byte, li fil-fatt hija RTMP Chunk Header kompluta. Skond l-analiżi tal-protokoll ta 'hawn fuq, nistgħu naraw Daqs tal-Ġisem RTMP huwa 00 6b c6 huwa 27590 bytes, li jfisser li t-tul totali ta' dan il-qafas tal-vidjo huwa 27590 bytes, u allura n-numru huwa 3293 (it-tul totali huwa 1514 bytes ta 'data , il-parti tat-tagħbija tiegħu 1448 bytes = 1514-14 (head head frame frame) -20 (header ip) -20 (header tcp) -12 (għażla tcp), l-analiżi tad-data nnumerata 3294 hija l-istess bħal dik ta '3293, iċ-ċavetta għad-dejta nnumerata 3295, Għaliex it-tagħbija tad-dejta tagħha hija biss 1266 byte (id-dejta tat-tagħbija hija ta ’1200 byte, 1266 nieqes kull dejta tal-header tal-protokoll hija 1200), huwa għalhekk li d-Daqs taċ-Ċokka ġie ssettjat għal 4096 fil-parti tal-protokoll qabel ma timbotta nixxiegħa, allura It-tagħbija ta 'pakkett RTMP tista' ġġorr biss sa 4096 bytes ta 'dejta. Id-dejta tat-tagħbija ta' kull parti hawnhekk hija 1448 + 1448 + 1200, li hija eżattament daqs 4096. Jiġifieri, jintbagħat pakkett RTMP , u d-dejta li jmiss għandha terġa 'tinġarr Fuq l-intestatura tal-pakkett RTMP, il-Figura 4 turi d-dejta tal-pakkett li jmiss.
Fil-Figura 4, nieħdu l-ewwel byte c6 bħala Header Bażiku. Nistgħu naraw li fmt huwa 11, li jfisser li m'hemm l-ebda Header tal-Messaġġ. Huwa stmat li dan il-qafas tal-vidjo huwa twil wisq u jeħtieġ li jinqasam f’pakketti multipli 4096, allura jistgħu jintużaw il-pakketti li ġejjin. Mur fl-Intestatura tal-Messaġġ tal-ewwel pakkett biex tnaqqas is-sensja.
Imbagħad mhux se tanalizzaha iktar. Għandi ngħid li Wireshark ma għenx biex jikkonverti pakketti TCP f'pakketti RTMP, li ħela ħafna ħin hawn, imma jekk taħseb dwarha bir-reqqa, tista 'titqies bħala approfondiment tal-fehim tal-protokoll RTMP.
|
Daħħal l-email biex tieħu sorpriża
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikans
sq.fmuser.org -> Albaniż
ar.fmuser.org -> Għarbi
hy.fmuser.org -> Armenjan
az.fmuser.org -> Ażerbajġan
eu.fmuser.org -> Bask
be.fmuser.org -> Belarussu
bg.fmuser.org -> Bulgaru
ca.fmuser.org -> Katalan
zh-CN.fmuser.org -> Ċiniż (Simplifikat)
zh-TW.fmuser.org -> Ċiniż (Tradizzjonali)
hr.fmuser.org -> Kroat
cs.fmuser.org -> Ċek
da.fmuser.org -> Daniż
nl.fmuser.org -> Olandiż
et.fmuser.org -> Estonjan
tl.fmuser.org -> Filippin
fi.fmuser.org -> Finlandiż
fr.fmuser.org -> Franċiż
gl.fmuser.org -> Galizjan
ka.fmuser.org -> Ġorġjan
de.fmuser.org -> Ġermaniż
el.fmuser.org -> Grieg
ht.fmuser.org -> Creole Ħaiti
iw.fmuser.org -> Ebrajk
hi.fmuser.org -> Ħindi
hu.fmuser.org -> Ungeriż
is.fmuser.org -> Iżlandiż
id.fmuser.org -> Indoneżjan
ga.fmuser.org -> Irlandiż
it.fmuser.org -> Taljan
ja.fmuser.org -> Ġappuniż
ko.fmuser.org -> Korean
lv.fmuser.org -> Latvjan
lt.fmuser.org -> Litwan
mk.fmuser.org -> Maċedonjan
ms.fmuser.org -> Malajan
mt.fmuser.org -> Malti
no.fmuser.org -> Norveġiż
fa.fmuser.org -> Persjan
pl.fmuser.org -> Pollakk
pt.fmuser.org -> Portugiż
ro.fmuser.org -> Rumen
ru.fmuser.org -> Russu
sr.fmuser.org -> Serb
sk.fmuser.org -> Slovakk
sl.fmuser.org -> Sloven
es.fmuser.org -> Spanjol
sw.fmuser.org -> Swaħili
sv.fmuser.org -> Svediż
th.fmuser.org -> Tajlandiż
tr.fmuser.org -> Tork
uk.fmuser.org -> Ukrain
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vjetnamiż
cy.fmuser.org -> Welsh
yi.fmuser.org -> Jiddix
FMUSER Wirless Jittrażmetti Vidjo U Awdjo Aktar Faċli!
kuntatt
indirizz:
No.305 Kamra HuiLan Building No.273 Huanpu Road Guangzhou China 510620
kategoriji
newsletter