FMUSER Wirless pārraida video un audio vieglāk!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikands
sq.fmuser.org -> albāņu
ar.fmuser.org -> arābu
hy.fmuser.org -> armēņu
az.fmuser.org -> azerbaidžāņu
eu.fmuser.org -> basku valoda
be.fmuser.org -> baltkrievu
bg.fmuser.org -> bulgāru valoda
ca.fmuser.org -> katalāņu
zh-CN.fmuser.org -> ķīniešu (vienkāršotā)
zh-TW.fmuser.org -> ķīniešu (tradicionālā)
hr.fmuser.org -> horvātu
cs.fmuser.org -> čehu
da.fmuser.org -> dāņu
nl.fmuser.org -> holandiešu
et.fmuser.org -> igauņu
tl.fmuser.org -> filipīniešu
fi.fmuser.org -> somu
fr.fmuser.org -> franču valoda
gl.fmuser.org -> galisiešu valoda
ka.fmuser.org -> gruzīnu
de.fmuser.org -> vācu
el.fmuser.org -> grieķu
ht.fmuser.org -> Haiti kreolu
iw.fmuser.org -> ebreju
hi.fmuser.org -> hindi
hu.fmuser.org -> ungāru valoda
is.fmuser.org -> islandiešu
id.fmuser.org -> indonēziešu
ga.fmuser.org -> īru
it.fmuser.org -> itāļu
ja.fmuser.org -> japāņu
ko.fmuser.org -> korejiešu
lv.fmuser.org -> latviski
lt.fmuser.org -> lietuviešu
mk.fmuser.org -> maķedoniešu
ms.fmuser.org -> malajiešu
mt.fmuser.org -> maltiešu
no.fmuser.org -> norvēģu
fa.fmuser.org -> persiešu
pl.fmuser.org -> poļu
pt.fmuser.org -> portugāļu
ro.fmuser.org -> rumāņu
ru.fmuser.org -> krievu valoda
sr.fmuser.org -> serbu
sk.fmuser.org -> slovāku
sl.fmuser.org -> slovēņu
es.fmuser.org -> spāņu
sw.fmuser.org -> svahili
sv.fmuser.org -> zviedru
th.fmuser.org -> taizemiešu
tr.fmuser.org -> turku
uk.fmuser.org -> ukraiņu
ur.fmuser.org -> urdu valoda
vi.fmuser.org -> vjetnamiešu
cy.fmuser.org -> velsiešu
yi.fmuser.org -> jidišs
Pirms dažām dienām es pavadīju kādu laiku, lai pētītu HTTP tiešraides straumēšanas (HLS) tehnoloģiju un ieviestu HLS kodētāju hlsliveencoder, kas rakstīts C + +. Tās funkcija ir uzņemt kameru un mikrofonu, reālā laika H.264 video kodēšanu un aac audio kodēšanu un saskaņā ar HLS protokola specifikāciju ģenerēt segmentētu standarta TS failu un m3u8 indeksa failu. Izmantojot manu hlsliveencoder un trešās puses HTTP serveri (piemēram, nginx), mēs veiksmīgi realizējām HTTP tiešraidi un nokārtojām iPhone testu. Es šeit uzrakstīšu dažus ieguvumus.
1. HLS tehnoloģijas analīze
HTTP tiešraides straumēšana (HLS) ir straumēšanas multivides transporta protokols, kura pamatā ir Apple Inc. ieviests HTTP un kas var realizēt tiešraides un pēc pieprasījuma straumēšanas multivides. To galvenokārt izmanto IOS sistēmā, lai nodrošinātu audio un video tiešraides un pēc pieprasījuma risinājumus IOS ierīcēm (piemēram, iPhone un iPad). HLS pēc pieprasījuma būtībā ir izplatīts segmentēts HTTP pēc pieprasījuma. Atšķirība ir tā, ka tā segmenti ir ļoti mazi. Lai realizētu HLS pēc pieprasījuma, galvenais ir multivides failu segmentēšana. Pašlaik ir daudz atvērta pirmkoda rīku, kurus var izmantot. Es to šeit neapspriedīšu, vienkārši runājiet par HLS tiešraides tehnoloģiju.
Salīdzinājumā ar parastajiem tiešraides straumēšanas protokoliem, piemēram, RTMP protokols, RTSP protokols, MMS protokols un tā tālāk, lielākā HLS tiešraides straumēšanas atšķirība ir tā, ka tiešraides klients nesaņem pilnīgu datu plūsmu. HLS protokols tiešraides datu plūsmu servera pusē saglabā kā nepārtrauktus, īslaicīgus un ilgus multivides failus (MPEG-TS formāts), savukārt klienta puse nepārtraukti lejupielādē un atskaņo šos mazos failus, jo servera puse vienmēr ģenerē jaunus mazus failus no jaunākos tiešraides datus, lai klienta pusei būtu jāspēlē tikai faili, kas iegūti no servera, lai realizētu tiešraidi. Var redzēt, ka HLS būtībā realizē tiešraides, izmantojot VOD tehnoloģiju. Tā kā dati tiek pārsūtīti, izmantojot HTTP protokolu, nav jāapsver ugunsmūra vai starpniekservera problēma, un failu segmentēšanas laiks ir ļoti īss. Klients var ātri izvēlēties un pārslēgt koda ātrumu, lai pielāgotos atskaņošanai dažādos joslas platuma apstākļos. Tomēr HLS tehnisko īpašību dēļ tā aizkave vienmēr ir lielāka nekā parastās tiešraides straumēšanas protokola.
Saskaņā ar iepriekš minēto izpratni, lai panāktu tiešraides HTTP tiešraidi, mums jāizpēta un jāievieš šādas galvenās tehnoloģijas.
(1) Apkopojiet video avota un audio avota datus
(2) Sākotnējos datus kodē H264 un AAC
(3) Video un audio dati tiek iepakoti kā MPEG-TS paketes
(4) HLS segmentācijas ģenerēšanas stratēģija un m3u8 indeksa fails
2. HTTP transporta protokols
Starp tiem pirmais un otrais punkts ir minēts manā iepriekšējā rakstā, un pēdējais ir tas, ka mēs varam izmantot esošo HTTP serveri, tāpēc galvenā ir trešā un ceturtā punkta ieviešana.
(1) Programmas struktūra un īstenošana
Izmantojot iepriekšminēto analīzi, HLS tiešā kodētāja loģika un process būtībā ir skaidrs: sāciet attiecīgi audio un video kodēšanas pavedienu, realizējiet audio un video iegūšanu, izmantojot DirectShow (vai citu) tehnoloģiju, un pēc tam izsauciet attiecīgi libx264 un libfaac video un audio kodēšana. Pēc tam, kad divi kodēšanas pavedieni reālā laikā kodē audio un video datus, tie tos saglabā MPEG-TS formāta segmenta failā atbilstoši pielāgotajai nodalījuma stratēģijai. Saglabājot segmenta failu, tiek atjaunināts m3u8 indeksa fails. Kā parādīts zemāk redzamajā attēlā:
Iepriekš redzamajā attēlā pēc video un audio datu saņemšanas hlsliveencoder vispirms jānosaka, vai pašreizējam nodalījumam jābeidzas, un jāizveido jauns nodalījums, lai turpinātu nepārtrauktu TS nodalījuma ģenerēšanu. Jāatzīmē, ka jaunajai sadrumstalotībai jāsākas no atslēgas rāmja, lai spēlētājs nevarētu dekodēt. Galvenais kods ir šāds:
Tsmuxer saskarne ir arī salīdzinoši vienkārša.
(2) HLS segmenta ģenerēšanas stratēģija un m3u8
① Segmentēšanas stratēģija
HLS segmentēšanas stratēģiju galvenokārt ieteicams sadalīt ik pēc 10 sekundēm. Protams, konkrētais laiks ir jāatzīmē atbilstoši faktiskajam sadalījuma ilgumam
Kopumā kešatmiņas un citu iemeslu dēļ pēdējās trīs fragmentu adreses tiek saglabātas indeksa failā un atjauninātas "bīdāmā loga" formā.
② m3u8 faila ieviešana
M3u8 ir HTTP tiešraides straumēšanas indeksa fails. M3u8 var uzskatīt par. M3U formāta fails būtībā atšķiras ar to, ka m3u8 failā tiek izmantota UTF-8 rakstzīmju kodēšana.
Kopēt kodu
# Extm3u M3U faila galvene jānovieto pirmajā rindā
# Ext-x-media-secības pirmā TS segmenta sērijas numurs
# Ext-x-targetduration katra TS segmenta maksimālais ilgums
# Vai ext-x-allow-cache atļauj kešatmiņu
# Faila ext-x-endlist m3u8 beigas
#Extinf papildu informācija, informācija par sadalītajiem datiem, piemēram, ilgums, joslas platums utt
|
Ievadiet e-pastu, lai saņemtu pārsteigumu
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikands
sq.fmuser.org -> albāņu
ar.fmuser.org -> arābu
hy.fmuser.org -> armēņu
az.fmuser.org -> azerbaidžāņu
eu.fmuser.org -> basku valoda
be.fmuser.org -> baltkrievu
bg.fmuser.org -> bulgāru valoda
ca.fmuser.org -> katalāņu
zh-CN.fmuser.org -> ķīniešu (vienkāršotā)
zh-TW.fmuser.org -> ķīniešu (tradicionālā)
hr.fmuser.org -> horvātu
cs.fmuser.org -> čehu
da.fmuser.org -> dāņu
nl.fmuser.org -> holandiešu
et.fmuser.org -> igauņu
tl.fmuser.org -> filipīniešu
fi.fmuser.org -> somu
fr.fmuser.org -> franču valoda
gl.fmuser.org -> galisiešu valoda
ka.fmuser.org -> gruzīnu
de.fmuser.org -> vācu
el.fmuser.org -> grieķu
ht.fmuser.org -> Haiti kreolu
iw.fmuser.org -> ebreju
hi.fmuser.org -> hindi
hu.fmuser.org -> ungāru valoda
is.fmuser.org -> islandiešu
id.fmuser.org -> indonēziešu
ga.fmuser.org -> īru
it.fmuser.org -> itāļu
ja.fmuser.org -> japāņu
ko.fmuser.org -> korejiešu
lv.fmuser.org -> latviski
lt.fmuser.org -> lietuviešu
mk.fmuser.org -> maķedoniešu
ms.fmuser.org -> malajiešu
mt.fmuser.org -> maltiešu
no.fmuser.org -> norvēģu
fa.fmuser.org -> persiešu
pl.fmuser.org -> poļu
pt.fmuser.org -> portugāļu
ro.fmuser.org -> rumāņu
ru.fmuser.org -> krievu valoda
sr.fmuser.org -> serbu
sk.fmuser.org -> slovāku
sl.fmuser.org -> slovēņu
es.fmuser.org -> spāņu
sw.fmuser.org -> svahili
sv.fmuser.org -> zviedru
th.fmuser.org -> taizemiešu
tr.fmuser.org -> turku
uk.fmuser.org -> ukraiņu
ur.fmuser.org -> urdu valoda
vi.fmuser.org -> vjetnamiešu
cy.fmuser.org -> velsiešu
yi.fmuser.org -> jidišs
FMUSER Wirless pārraida video un audio vieglāk!
Kontakti
Adrese:
Nr. 305 istaba HuiLan ēka Nr.273 Huanpu Road Guangzhou, Ķīna 510620
Kategorijas
Saņemt jaunumus