FMUSER Wirless edastab videot ja heli lihtsamalt!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albaania keel
ar.fmuser.org -> araabia
hy.fmuser.org -> Armeenia
az.fmuser.org -> aserbaidžaanlane
eu.fmuser.org -> baski keel
be.fmuser.org -> valgevenelane
bg.fmuser.org -> Bulgaaria
ca.fmuser.org -> katalaani keel
zh-CN.fmuser.org -> hiina (lihtsustatud)
zh-TW.fmuser.org -> Hiina (traditsiooniline)
hr.fmuser.org -> horvaadi keel
cs.fmuser.org -> tšehhi
da.fmuser.org -> taani keel
nl.fmuser.org -> Hollandi
et.fmuser.org -> eesti keel
tl.fmuser.org -> filipiinlane
fi.fmuser.org -> soome keel
fr.fmuser.org -> Prantsusmaa
gl.fmuser.org -> galicia keel
ka.fmuser.org -> gruusia keel
de.fmuser.org -> saksa keel
el.fmuser.org -> Kreeka
ht.fmuser.org -> Haiti kreool
iw.fmuser.org -> heebrea
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungari
is.fmuser.org -> islandi keel
id.fmuser.org -> indoneesia keel
ga.fmuser.org -> iiri keel
it.fmuser.org -> Itaalia
ja.fmuser.org -> jaapani keel
ko.fmuser.org -> korea
lv.fmuser.org -> läti keel
lt.fmuser.org -> Leedu
mk.fmuser.org -> makedoonia
ms.fmuser.org -> malai
mt.fmuser.org -> malta keel
no.fmuser.org -> Norra
fa.fmuser.org -> pärsia keel
pl.fmuser.org -> poola keel
pt.fmuser.org -> portugali keel
ro.fmuser.org -> Rumeenia
ru.fmuser.org -> vene keel
sr.fmuser.org -> serbia
sk.fmuser.org -> slovaki keel
sl.fmuser.org -> Sloveenia
es.fmuser.org -> hispaania keel
sw.fmuser.org -> suahiili keel
sv.fmuser.org -> rootsi keel
th.fmuser.org -> Tai
tr.fmuser.org -> türgi keel
uk.fmuser.org -> ukrainlane
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kõmri keel
yi.fmuser.org -> Jidiši
Mõni päev tagasi veetsin mõnda aega HTTP-otseülekande (HLS) tehnoloogia uurimiseks ja C + + -s kirjutatud HLS-kooderi hlsliveencoder juurutamiseks. Selle ülesandeks on kaamera ja mikrofoni jäädvustamine, reaalajas H.264 videokodeerimine ja aac-heli kodeerimine ning vastavalt HLS-protokolli spetsifikatsioonile segmenteeritud standardse TS-faili ja m3u8-indeksfaili genereerimine. Minu hlsliveencoderi ja kolmanda osapoole HTTP-serveri (näiteks nginx) kaudu saime edukalt aru HTTP otseülekandest ja läbisime testi iPhone'is. Kirjutan mõned kasumid siia.
1. HLS-tehnoloogia analüüs
HTTP reaalajas voogesitus (HLS) on Apple Inc. rakendatud HTTP-põhine voogesituse meediumitranspordiprotokoll, mis suudab realiseerida reaalajas ja tellitavat voogedastust. Seda kasutatakse peamiselt IOS-süsteemis IOS-seadmete (näiteks iPhone ja iPad) heli- ja videoülekannete ning tellitavate lahenduste pakkumiseks. HLS on demand on põhimõtteliselt tavaline segmenteeritud HTTP nõudmisel. Erinevus seisneb selles, et selle segmendid on väga väikesed. HLS-i realiseerimiseks nõudmisel on peamine meediumifailide segmentimine. Praegu on palju avatud lähtekoodiga tööriistu, mida saab kasutada. Ma ei hakka seda siin arutama, räägi vaid HLS-i otseülekande tehnoloogiast.
Võrreldes tavaliste otseülekande protokollidega, näiteks RTMP-protokoll, RTSP-protokoll, MMS-protokoll ja nii edasi, on HLS-i otseülekande suurim erinevus see, et otseülekande klient ei saa täielikku andmevoogu. HLS-protokoll salvestab reaalajas andmevoo serveri poolel pidevate, lühiajaliste ja pikkade meediumifailidena (mpeg-ts-vormingus), samas kui kliendipool laadib neid väikseid faile pidevalt alla ja mängib, kuna serveripool genereerib alati uusimad reaalajas olevad andmed, nii et kliendi pool peab reaalajas realiseerimiseks esitama ainult serverist saadud failid. On näha, et HLS teostab otseülekandeid põhimõtteliselt VOD-tehnoloogia abil. Kuna andmeid edastatakse HTTP-protokolli kaudu, pole tulemüüri või puhverserveri probleemiga vaja arvestada ning failide segmenteerimise aeg on väga lühike. Klient saab kiiresti valida ja vahetada koodikiirust, et taasesituseks erinevates ribalaiuse tingimustes kohandada. Kuid HLS-i tehniliste omaduste tõttu on selle viivitus alati suurem kui tavalise otseülekande protokolli.
Ülaltoodud arusaama kohaselt peame HTTP reaalajas voogesituse otseülekandeks uurima ja juurutama järgmisi võtmetehnoloogiaid.
(1) Koguge videoallika ja heliallika andmed
(2) Algandmeid kodeerivad H264 ja AAC
(3) Video- ja heliandmed on pakendatud MPEG-TS pakettidena
(4) HLS-i segmentimise loomise strateegia ja m3u8 indeksfail
2. HTTP transpordiprotokoll
Nende hulgas on minu eelmises artiklis mainitud esimest ja teist punkti ning viimane punkt on see, et saame kasutada olemasolevat HTTP-serverit, seega on võtmeks kolmanda ja neljanda punkti rakendamine.
(1) Programmi raamistik ja rakendamine
Ülaltoodud analüüsi kaudu on HLS-i reaalajas kooderi loogika ja protsess põhimõtteliselt selge: alustage vastavalt heli ja video kodeerimislõnga, realiseerige heli ja video omandamine DirectShow (või muu) tehnoloogia kaudu ja seejärel helistage video ja libxac vastavalt libx264 helikodeerimine. Pärast seda, kui kaks kodeerivat lõime kodeerivad heli- ja videoandmeid reaalajas, salvestavad nad need kohandatud partitsioonistrateegia kohaselt mpeg-ts-vormingus segmentfaili. Segmendifaili salvestamisel värskendatakse indeksfaili m3u8. Nagu on näidatud alloleval joonisel:
Ülaloleval joonisel peab hlsliveencoder pärast video- ja heliandmete vastuvõtmist kõigepealt kindlaks määrama, kas praegune partitsioon peaks lõppema, ja looma uue partitsiooni, et jätkata TS-partitsiooni pidevat genereerimist. Tuleb märkida, et uus killustamine peaks algama võtmeraamist, et takistada mängija dekodeerimise ebaõnnestumist. Põhikood on järgmine:
Tsmuxeri liides on samuti suhteliselt lihtne.
(2) HLS-i segmendi loomise strateegia ja m3u8
① Segmenteerimisstrateegia
HLS-i segmenteerimisstrateegiat soovitatakse põhimõtteliselt jagada iga 10 sekundi tagant. Muidugi tuleks konkreetne aeg märkida vastavalt jagamise tegelikule pikkusele
Üldiselt hoitakse vahemälu ja muude põhjuste huvides viimast kolme fragmendi aadressi indeksfailis ja värskendatakse "libiseva akna" kujul.
② m3u8 faili tutvustus
M3u8 on HTTP reaalajas voogesituse indeksfail. M3u8 võib pidada. Põhimõtteliselt on M3U-vormingus fail erinevus sellest, et m3u8-fail kasutab UTF-8 tähemärgikodeeringut.
Kopeeri kood
# Extm3u M3U-faili päis tuleb asetada esimesele reale
# Ext-x-media-järjestuse esimese TS-i segmendi seerianumber
# Ext-x-targetduration iga TS-i segmendi maksimaalne kestus
# Kas ext-x-allow-cache lubab vahemälu
Faili ext-x-endlist m3u8 lõpp
#Extinf lisateave, teave jagatud ts, näiteks kestus, ribalaius jne
|
Üllatuse saamiseks sisestage e-posti aadress
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albaania keel
ar.fmuser.org -> araabia
hy.fmuser.org -> Armeenia
az.fmuser.org -> aserbaidžaanlane
eu.fmuser.org -> baski keel
be.fmuser.org -> valgevenelane
bg.fmuser.org -> Bulgaaria
ca.fmuser.org -> katalaani keel
zh-CN.fmuser.org -> hiina (lihtsustatud)
zh-TW.fmuser.org -> Hiina (traditsiooniline)
hr.fmuser.org -> horvaadi keel
cs.fmuser.org -> tšehhi
da.fmuser.org -> taani keel
nl.fmuser.org -> Hollandi
et.fmuser.org -> eesti keel
tl.fmuser.org -> filipiinlane
fi.fmuser.org -> soome keel
fr.fmuser.org -> Prantsusmaa
gl.fmuser.org -> galicia keel
ka.fmuser.org -> gruusia keel
de.fmuser.org -> saksa keel
el.fmuser.org -> Kreeka
ht.fmuser.org -> Haiti kreool
iw.fmuser.org -> heebrea
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungari
is.fmuser.org -> islandi keel
id.fmuser.org -> indoneesia keel
ga.fmuser.org -> iiri keel
it.fmuser.org -> Itaalia
ja.fmuser.org -> jaapani keel
ko.fmuser.org -> korea
lv.fmuser.org -> läti keel
lt.fmuser.org -> Leedu
mk.fmuser.org -> makedoonia
ms.fmuser.org -> malai
mt.fmuser.org -> malta keel
no.fmuser.org -> Norra
fa.fmuser.org -> pärsia keel
pl.fmuser.org -> poola keel
pt.fmuser.org -> portugali keel
ro.fmuser.org -> Rumeenia
ru.fmuser.org -> vene keel
sr.fmuser.org -> serbia
sk.fmuser.org -> slovaki keel
sl.fmuser.org -> Sloveenia
es.fmuser.org -> hispaania keel
sw.fmuser.org -> suahiili keel
sv.fmuser.org -> rootsi keel
th.fmuser.org -> Tai
tr.fmuser.org -> türgi keel
uk.fmuser.org -> ukrainlane
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kõmri keel
yi.fmuser.org -> Jidiši
FMUSER Wirless edastab videot ja heli lihtsamalt!
Saada sõnum
Aadress:
Nr 305 tuba HuiLan Building No.273 Huanpu Road Guangzhou, Hiina 510620
Kategooriad
Uudiskiri