FMUSER Wirless stuur video en klank makliker toe!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabies
hy.fmuser.org -> Armeens
az.fmuser.org -> Azerbeidjans
eu.fmuser.org -> Baskies
be.fmuser.org -> Belo-Russies
bg.fmuser.org -> Bulgaars
ca.fmuser.org -> Katalaans
zh-CN.fmuser.org -> Chinees (vereenvoudig)
zh-TW.fmuser.org -> Sjinees (Tradisioneel)
hr.fmuser.org -> Kroaties
cs.fmuser.org -> Tsjeggies
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlandse
et.fmuser.org -> Esties
tl.fmuser.org -> Filippyns
fi.fmuser.org -> Fins
fr.fmuser.org -> Franse
gl.fmuser.org -> Galisies
ka.fmuser.org -> Georgies
de.fmuser.org -> Duits
el.fmuser.org -> Grieks
ht.fmuser.org -> Haïtiaanse kreool
iw.fmuser.org -> Hebreeus
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> Yslands
id.fmuser.org -> Indonesies
ga.fmuser.org -> Iers
it.fmuser.org -> Italiaanse
ja.fmuser.org -> Japannees
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Litaus
mk.fmuser.org -> Masedonies
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Noorse
fa.fmuser.org -> Persies
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russies
sr.fmuser.org -> Serwies
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Sloveens
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Sweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Oerdoe
vi.fmuser.org -> Viëtnamees
cy.fmuser.org -> Wallies
yi.fmuser.org -> Jiddisj
'N Paar dae gelede het ek 'n tydjie bestee om HTTP live streaming (HLS) tegnologie te bestudeer en 'n HLS-kodeerder, hlsliveencoder, in C + + te implementeer. Die funksie daarvan is om die kamera en mikrofoon, real-time H.264-videokodering en aac-klankodering vas te lê, en volgens die HLS-protokolspesifikasie gesegmenteerde standaard TS-lêer en m3u8-indekslêer te genereer. Deur middel van my hlsliveencoder en die HTTP-bediener van derdes (soos nginx), het ons die live streaming van HTTP suksesvol besef en die toets op die iPhone geslaag. Ek sal 'n paar van die winste hier neerskryf.
1. Analise van HLS-tegnologie
HTTP live streaming (HLS) is 'n streaming media vervoerprotokol wat gebaseer is op HTTP geïmplementeer deur Apple Inc., wat live en on-demand streaming media kan realiseer. Dit word hoofsaaklik in die IOS-stelsel gebruik om klank- en video-lewendige en on-demand oplossings vir IOS-toestelle (soos iPhone en iPad) te bied. HLS on demand is basies 'n algemene gesegmenteerde HTTP op aanvraag. Die verskil is dat die segmente daarvan baie klein is. Om HLS op aanvraag te realiseer, is die sleutel om medialêers te segmenteer. Op die oomblik is daar baie open source-instrumente wat gebruik kan word. Ek sal dit nie hier bespreek nie, maar net oor HLS-regstreekse uitsaaitegnologie.
In vergelyking met die gewone live streaming protokolle, soos RTMP protokol, RTSP protokol, MMS protokol, ensovoorts, is die grootste verskil van HLS live streaming dat die live kliënt nie 'n volledige datastroom kry nie. HLS-protokol stoor die lewendige datastroom as deurlopende, korttermyn- en lang medialêers (mpeg-ts-formaat) aan die bedienerskant, terwyl die kliëntkant hierdie klein lêers voortdurend aflaai en speel, omdat die bedienerkant altyd nuwe klein lêers genereer vanaf die nuutste regstreekse data, sodat die kliënt net die lêers wat vanaf die bediener verkry word, hoef af te speel om die live te realiseer. Daar kan gesien word dat HLS basies live uitsendings deur middel van VOD-tegnologie realiseer. Omdat die data deur die HTTP-protokol oorgedra word, hoef u nie die probleem van firewall of proxy te oorweeg nie, en die tyd vir die segmentering van lêers is baie kort. Die kliënt kan die koersnelheid vinnig kies en verander om aan te pas by die afspeel onder verskillende bandbreedte-toestande. As gevolg van die tegniese eienskappe van HLS, is die vertraging daarvan egter altyd hoër as die gewone protokol vir live streaming.
Volgens die bostaande begrip, moet ons die volgende sleuteltegnologieë bestudeer en implementeer om HTTP live streaming live te bereik.
(1) Versamel die data van die videobron en die klankbron
(2) Die oorspronklike data word deur H264 en AAC gekodeer
(3) Video- en klankdata word as mpeg-ts-pakkies verpak
(4) HLS-segmenteringsgenereerstrategie en m3u8-indekslêer
2. HTTP-vervoerprotokol
Onder hulle is die eerste en tweede punte in my vorige artikel genoem, en die laaste punt is dat ons die bestaande HTTP-bediener kan gebruik, dus die implementering van die derde en vierde punte is die sleutel.
(1) Programraamwerk en implementering
Deur die bostaande analise is die logika en die proses van HLS live-enkodeerder basies duidelik: begin die klank- en videokoderingsdraad onderskeidelik, besef die klank- en video-verkryging deur DirectShow (of ander) tegnologie, en bel dan onderskeidelik libx264 en libfaac vir video en klankodering. Nadat die twee koderingsdrade die klank- en videodata in realtime gekodeer het, stoor dit in 'n segmentlêer van mpeg-ts-formaat volgens die aangepaste partisie-strategie. Wanneer 'n segmentlêer gestoor word, word die m3u8-indekslêer opgedateer. Soos getoon in die onderstaande figuur:
In die bostaande figuur, na ontvangs van die video- en klankdata, moet hlsliveencoder eers bepaal of die huidige partisie moet eindig, en 'n nuwe partisie moet skep om die voortdurende generasie van TS-partisie voort te sit. Daar moet op gelet word dat die nuwe fragmentasie vanaf die sleutelraam moet begin om te verhoed dat die speler dekodeer mislukking. Die kernkode is soos volg:
Die koppelvlak van tsmuxer is ook relatief eenvoudig.
(2) HLS-segmentopwekkingstrategie en m3u8
① Segmenteringstrategie
Die segmenteringstrategie van HLS word basies aanbeveel om elke 10 sekondes te verdeel. Die spesifieke tyd moet natuurlik gemerk word volgens die werklike lengte van die verdeling
Oor die algemeen word die laaste drie fragmentadresse ter wille van die kas en om ander redes in die indekslêer bewaar en in die vorm van 'n skuifvenster opgedateer.
② Bekendstelling van die m3u8-lêer
M3u8 is die indeks lêer van HTTP live streaming. M3u8 kan beskou word as. M3U-lêer is basies, die verskil is dat die m3u8-lêer UTF-8-karakterkodering gebruik.
Kopieer kode
# Extm3u M3U-lêerkop moet in die eerste reël geplaas word
# Serienommer van die eerste TS-segment van ext-x-media-reeks
# Ext-x-targetduur die maksimum duur van elke TS-segment
# Laat ext-x-allow-cache cache toe
#Eind van die ext-x-endlist m3u8-lêer
#Extinf ekstra inligting, die inligting van split ts, soos duur, bandwydte, ens
|
Voer e-posadres in om 'n verrassing te kry
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albanees
ar.fmuser.org -> Arabies
hy.fmuser.org -> Armeens
az.fmuser.org -> Azerbeidjans
eu.fmuser.org -> Baskies
be.fmuser.org -> Belo-Russies
bg.fmuser.org -> Bulgaars
ca.fmuser.org -> Katalaans
zh-CN.fmuser.org -> Chinees (vereenvoudig)
zh-TW.fmuser.org -> Sjinees (Tradisioneel)
hr.fmuser.org -> Kroaties
cs.fmuser.org -> Tsjeggies
da.fmuser.org -> Deens
nl.fmuser.org -> Nederlandse
et.fmuser.org -> Esties
tl.fmuser.org -> Filippyns
fi.fmuser.org -> Fins
fr.fmuser.org -> Franse
gl.fmuser.org -> Galisies
ka.fmuser.org -> Georgies
de.fmuser.org -> Duits
el.fmuser.org -> Grieks
ht.fmuser.org -> Haïtiaanse kreool
iw.fmuser.org -> Hebreeus
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> Yslands
id.fmuser.org -> Indonesies
ga.fmuser.org -> Iers
it.fmuser.org -> Italiaanse
ja.fmuser.org -> Japannees
ko.fmuser.org -> Koreaans
lv.fmuser.org -> Lets
lt.fmuser.org -> Litaus
mk.fmuser.org -> Masedonies
ms.fmuser.org -> Maleis
mt.fmuser.org -> Maltees
no.fmuser.org -> Noorse
fa.fmuser.org -> Persies
pl.fmuser.org -> Pools
pt.fmuser.org -> Portugees
ro.fmuser.org -> Roemeens
ru.fmuser.org -> Russies
sr.fmuser.org -> Serwies
sk.fmuser.org -> Slowaaks
sl.fmuser.org -> Sloveens
es.fmuser.org -> Spaans
sw.fmuser.org -> Swahili
sv.fmuser.org -> Sweeds
th.fmuser.org -> Thai
tr.fmuser.org -> Turks
uk.fmuser.org -> Oekraïens
ur.fmuser.org -> Oerdoe
vi.fmuser.org -> Viëtnamees
cy.fmuser.org -> Wallies
yi.fmuser.org -> Jiddisj
FMUSER Wirless stuur video en klank makliker toe!
Kontak Ons
adres:
No.305 Kamer HuiLan-gebou No.273 Huanpu-weg Guangzhou China 510620
kategorieë
Nuusbrief