Ang FMUSER Wirless ay Naghahatid ng Video At Audio Nang Mas Madali!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanian
ar.fmuser.org -> Arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbaijani
eu.fmuser.org -> Basque
be.fmuser.org -> Belarusian
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalan
zh-CN.fmuser.org -> Intsik (Pinasimple)
zh-TW.fmuser.org -> Intsik (Tradisyunal)
hr.fmuser.org -> Croatian
cs.fmuser.org -> Czech
da.fmuser.org -> Danish
nl.fmuser.org -> Dutch
et.fmuser.org -> Estonian
tl.fmuser.org -> Pilipino
fi.fmuser.org -> Finnish
fr.fmuser.org -> Pranses
gl.fmuser.org -> Galician
ka.fmuser.org -> Georgian
de.fmuser.org -> Aleman
el.fmuser.org -> Greek
ht.fmuser.org -> Haitian Creole
iw.fmuser.org -> Hebrew
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> Icelandic
id.fmuser.org -> Indonesian
ga.fmuser.org -> Irish
it.fmuser.org -> Italian
ja.fmuser.org -> Japanese
ko.fmuser.org -> Koreano
lv.fmuser.org -> Latvian
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonian
ms.fmuser.org -> Malay
mt.fmuser.org -> Maltese
no.fmuser.org -> Norwegian
fa.fmuser.org -> Persian
pl.fmuser.org -> Polish
pt.fmuser.org -> Portuges
ro.fmuser.org -> Romanian
ru.fmuser.org -> Ruso
sr.fmuser.org -> Serbiano
sk.fmuser.org -> Slovak
sl.fmuser.org -> Slovenian
es.fmuser.org -> Espanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Suweko
th.fmuser.org -> Thai
tr.fmuser.org -> Turkish
uk.fmuser.org -> Ukrainian
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Yiddish
Ilang araw na ang nakakalipas, gumugol ako ng ilang oras upang pag-aralan ang teknolohiya ng HTTP live streaming (HLS) at magpatupad ng isang encoder ng HLS, hlsliveencoder, na nakasulat sa C + +. Ang pagpapaandar nito ay upang makuha ang camera at microphone, real-time H.264 video coding at aac audio coding, at ayon sa pagtutukoy ng HLS protocol, bumuo ng segmented standard TS file at m3u8 index file. Sa pamamagitan ng aking hlsliveencoder at ang third-party na HTTP server (tulad ng nginx), matagumpay naming natanto ang live streaming ng HTTP at naipasa ang pagsubok sa iPhone. Isusulat ko ang ilan sa mga nakamit dito.
1. Pagsusuri sa Teknolohiya ng HLS
Ang HTTP live streaming (HLS) ay isang streaming media transport protocol na batay sa HTTP na ipinatupad ng Apple Inc., na maaaring mapagtanto ang live at on-demand streaming media. Pangunahin itong ginagamit sa sistema ng IOS upang magbigay ng live na on-demand na mga solusyon sa audio at video para sa mga aparato ng IOS (tulad ng iPhone at iPad). Ang HLS na hinihiling ay karaniwang isang karaniwang segment na HTTP kapag hiniling. Ang pagkakaiba ay ang mga segment nito ay napakaliit. Upang mapagtanto ang HLS sa demand, ang susi ay ang pag-segment ng mga file ng media. Sa kasalukuyan, maraming mga tool sa bukas na mapagkukunan na maaaring magamit. Hindi ko ito tatalakayin dito, pag-usapan lang ang tungkol sa live na teknolohiya ng broadcast ng HLS.
Kung ihahambing sa karaniwang mga live streaming na protokol, tulad ng RTMP protocol, RTSP protocol, MMS protocol at iba pa, ang pinakamalaking pagkakaiba ng HLS live streaming ay ang live client ay hindi nakakakuha ng isang kumpletong stream ng data. Ang HLS protocol ay nag-iimbak ng live na stream ng data bilang tuluy-tuloy, panandalian at mahabang mga file ng media (format ng mpeg-ts) sa panig ng server, habang ang panig ng kliyente ay patuloy na nagda-download at nagpe-play ng mga maliliit na file na ito, dahil palaging lumilikha ang panig ng server ng mga bagong maliliit na file mula sa ang pinakabagong live na data, upang ang panig ng kliyente ay kailangang i-play lamang ang mga file na nakuha mula sa server upang mapagtanto ang live. Makikita na ang HLS ay karaniwang napagtanto ang live na pag-broadcast sa pamamagitan ng teknolohiya ng VOD. Dahil ang data ay naipadala sa pamamagitan ng HTTP protocol, hindi na kailangang isaalang-alang ang problema ng firewall o proxy, at ang oras ng pagse-segment ng mga file ay napaka-ikli. Mabilis na mapili at mailipat ng kliyente ang rate ng code upang umakma sa pag-playback sa ilalim ng iba't ibang mga kondisyon sa bandwidth. Gayunpaman, dahil sa mga teknikal na katangian ng HLS, ang pagkaantala nito ay palaging mas mataas kaysa sa ordinaryong live streaming protocol.
Ayon sa pag-unawa sa itaas, upang makamit ang HTTP live streaming na live, kailangan nating pag-aralan at ipatupad ang mga sumusunod na pangunahing teknolohiya.
(1) Kolektahin ang data ng mapagkukunan ng video at mapagkukunan ng audio
(2) Ang orihinal na data ay naka-encode ng H264 at AAC
(3) Ang data ng video at audio ay nakabalot bilang mga packet ng mpeg-ts
(4) Diskarte sa pagbuo ng paghihiwalay ng HLS at m3u8 index file
2. HTTP transport protocol
Kabilang sa mga ito, ang una at pangalawang mga puntos ay nabanggit sa aking nakaraang artikulo, at ang huling punto ay maaari naming gamitin ang umiiral na HTTP server, kaya ang pagpapatupad ng pangatlo at ikaapat na puntos ay ang susi.
(1) Balangkas ng programa at Pagpapatupad
Sa pamamagitan ng pagtatasa sa itaas, ang lohika at proseso ng HLS live encoder ay malinaw na malinaw: simulan ang audio at video coding thread ayon sa pagkakabanggit, mapagtanto ang acquisition ng audio at video sa pamamagitan ng DirectShow (o iba pang) teknolohiya, at pagkatapos ay tawagan ang libx264 at libfaac ayon sa pagkakabanggit para sa video at audio coding Matapos ma-encode ng dalawang mga encoding na thread ang data ng audio at video sa real time, iniimbak nila ito sa isang segment na file ng mpeg-ts format ayon sa na-diskarte na diskarte sa pagkahati. Kapag ang isang segment na file ay naiimbak, ang m3u8 index file ay nai-update. Tulad ng ipinakita sa figure sa ibaba:
Sa pigura sa itaas, pagkatapos matanggap ang data ng video at audio, kailangang matukoy muna ng hlsliveencoder kung dapat magtapos ang kasalukuyang pagkahati, at lumikha ng isang bagong pagkahati upang ipagpatuloy ang patuloy na pagbuo ng pagkahati ng TS. Dapat pansinin na ang bagong pagkakawatak-watak ay dapat magsimula mula sa key frame upang maiwasan ang pagkabigo ng player sa pag-decode. Ang pangunahing code ay ang mga sumusunod:
Ang interface ng tsmuxer ay medyo simple din.
(2) Diskarte sa pagbuo ng segment ng HLS at m3u8
① Diskarte sa paghihiwalay
Ang diskarte sa paghihiwalay ng HLS ay karaniwang inirerekomenda na hatiin bawat 10 segundo. Siyempre, ang tiyak na oras ay dapat markahan ayon sa aktwal na haba ng paghati
Sa pangkalahatan, para sa kapakanan ng cache at iba pang mga kadahilanan, ang pinakabagong tatlong mga address ng fragment ay itinatago sa index file at na-update sa anyo ng "sliding window".
② Panimula ng m3u8 file
Ang M3u8 ay ang index file ng HTTP live streaming. M3u8 ay maaaring ituring bilang. Karaniwang ang format ng M3U file, ang pagkakaiba ay ang m3u8 file ay gumagamit ng pag-encode ng UTF-8 na character.
Kopyahin ang code
# Extm3u M3U file header, dapat ilagay sa unang linya
#Serial number ng unang segment ng TS ng ext-x-media-series
# Ext-x-targetduras ang maximum na tagal ng bawat segment ng TS
#Does ext-x-payagan-cache payagan ang cache
# Wakas ng ext-x-endlist m3u8 file
#Extinf dagdag na impormasyon, ang impormasyon ng split ts, tulad ng tagal, bandwidth, atbp
|
Ipasok ang email upang makakuha ng sorpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanian
ar.fmuser.org -> Arabe
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbaijani
eu.fmuser.org -> Basque
be.fmuser.org -> Belarusian
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalan
zh-CN.fmuser.org -> Intsik (Pinasimple)
zh-TW.fmuser.org -> Intsik (Tradisyunal)
hr.fmuser.org -> Croatian
cs.fmuser.org -> Czech
da.fmuser.org -> Danish
nl.fmuser.org -> Dutch
et.fmuser.org -> Estonian
tl.fmuser.org -> Pilipino
fi.fmuser.org -> Finnish
fr.fmuser.org -> Pranses
gl.fmuser.org -> Galician
ka.fmuser.org -> Georgian
de.fmuser.org -> Aleman
el.fmuser.org -> Greek
ht.fmuser.org -> Haitian Creole
iw.fmuser.org -> Hebrew
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> Icelandic
id.fmuser.org -> Indonesian
ga.fmuser.org -> Irish
it.fmuser.org -> Italian
ja.fmuser.org -> Japanese
ko.fmuser.org -> Koreano
lv.fmuser.org -> Latvian
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedonian
ms.fmuser.org -> Malay
mt.fmuser.org -> Maltese
no.fmuser.org -> Norwegian
fa.fmuser.org -> Persian
pl.fmuser.org -> Polish
pt.fmuser.org -> Portuges
ro.fmuser.org -> Romanian
ru.fmuser.org -> Ruso
sr.fmuser.org -> Serbiano
sk.fmuser.org -> Slovak
sl.fmuser.org -> Slovenian
es.fmuser.org -> Espanyol
sw.fmuser.org -> Swahili
sv.fmuser.org -> Suweko
th.fmuser.org -> Thai
tr.fmuser.org -> Turkish
uk.fmuser.org -> Ukrainian
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> Welsh
yi.fmuser.org -> Yiddish
Ang FMUSER Wirless ay Naghahatid ng Video At Audio Nang Mas Madali!
Makipag-ugnay sa
Tirahan
No.305 Room Huilan Building No.273 Huanpu Road Guangzhou China 510620
Kategorya
Newsletter