„FMUSER Wirless“ perduoda vaizdo ir garso įrašus lengviau!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanų kalba
sq.fmuser.org -> albanų
ar.fmuser.org -> arabų
hy.fmuser.org -> armėnas
az.fmuser.org -> azerbaidžanietis
eu.fmuser.org -> baskų
be.fmuser.org -> baltarusių
bg.fmuser.org -> bulgarų
ca.fmuser.org -> katalonų
zh-CN.fmuser.org -> kinų (supaprastinta)
zh-TW.fmuser.org -> kinų (tradicinė)
hr.fmuser.org -> kroatų
cs.fmuser.org -> čekų
da.fmuser.org -> danų
nl.fmuser.org -> Olandų
et.fmuser.org -> estų
tl.fmuser.org -> filipinietis
fi.fmuser.org -> suomių
fr.fmuser.org -> prancūzų
gl.fmuser.org -> Galisų
ka.fmuser.org -> gruzinų
de.fmuser.org -> vokiečių kalba
el.fmuser.org -> graikų
ht.fmuser.org -> Haičio kreolis
iw.fmuser.org -> hebrajų
hi.fmuser.org -> hindi
hu.fmuser.org -> vengrų
is.fmuser.org -> islandų
id.fmuser.org -> indoneziečių
ga.fmuser.org -> airių
it.fmuser.org -> italų kalba
ja.fmuser.org -> japonų
ko.fmuser.org -> korėjiečių
lv.fmuser.org -> latvių
lt.fmuser.org -> lietuvis
mk.fmuser.org -> makedonų
ms.fmuser.org -> malajiečių
mt.fmuser.org -> maltiečių
no.fmuser.org -> norvegų
fa.fmuser.org -> persų
pl.fmuser.org -> lenkų
pt.fmuser.org -> portugalų
ro.fmuser.org -> rumunų
ru.fmuser.org -> rusų
sr.fmuser.org -> serbų
sk.fmuser.org -> slovakų
sl.fmuser.org -> slovėnų
es.fmuser.org -> ispanų
sw.fmuser.org -> svahili kalba
sv.fmuser.org -> švedų
th.fmuser.org -> Tailando
tr.fmuser.org -> turkų
uk.fmuser.org -> ukrainietis
ur.fmuser.org -> urdu
vi.fmuser.org -> vietnamiečių
cy.fmuser.org -> Valų kalba
yi.fmuser.org -> jidiš
Šiandien pristatysiu „HLS“ sutartį, kurią pasiūlė ir skatino „Apple“. Čia yra apibrėžimas iš Vikipedijos.
„HTTP Live Streaming“ (sutrumpintai - HLS) yra HTTP pagrindu veikiantis srautinės medijos tinklo perdavimo protokolas, kurį pasiūlė „Apple“. Tai yra „Apple“ programinės įrangos „QuickTime X“ ir „iPhone“ dalis. Tai veikia padalijant visą srautą į mažus HTTP failus, kuriuos reikia atsisiųsti, ir vienu metu atsisiųsdami tik kelis. Kai groja medijos srautas, klientas gali pasirinkti tą patį šaltinį atsisiųsti skirtingais greičiais iš daugybės skirtingų alternatyvių šaltinių, leisdamas srautinės medijos sesijai prisitaikyti prie skirtingo duomenų perdavimo greičio. Pradėdamas srautinės terpės seansą, klientas atsisiųs išplėstinį M3U (m3u8) grojaraščio failą, kuriame yra metaduomenys, kad rastų galimus medijos srautus.
HLS prašo tik pagrindinių HTTP pranešimų. Skirtingai nuo „Real Time Transport Protocol“ (RTP), HLS gali perduoti bet kurią ugniasienę ar tarpinį serverį, leidžiantį perduoti HTTP duomenis. Taip pat lengva naudoti turinio platinimo tinklus medijos srautams perduoti.
„Apple“ laiko HLS protokolą kaip interneto juodraštį (pateiktą žingsnis po žingsnio), kuris IETF buvo pateiktas kaip neformalus standartas pirmajame etape. Vis dėlto, nors „Apple“ kartais pateikia keletą nedidelių atnaujinimų, IETF nesiėmė jokių tolesnių veiksmų plėtodama šį standartą. [1]
1. Susitarimo įvadas
HLS sutartyje numatyta:
(1) Vaizdo įrašo pakuotės formatas yra TS.
(2) Vaizdo kodavimo formatas yra H264, o garso kodavimo formatas yra MP3, AAC arba AC-3.
(3) Be paties TS vaizdo failo, taip pat apibrėžiamas m3u8 failas (tekstinis failas), naudojamas atkūrimui valdyti.
Kodėl „Apple“ siūlo HLS protokolą? Tiesą sakant, tai daugiausia siekiama išspręsti kai kurias RTMP protokolo problemas. Pavyzdžiui, RTMP protokolas nenaudoja standartinės HTTP sąsajos duomenims perduoti, todėl kai kuriose specialiose tinklo aplinkose ją gali užblokuoti užkarda. Tačiau kadangi HLS naudoja HTTP protokolą duomenims perduoti, jis nesusidurs su situacija, kai ugniasienė bus apsaugota (nėra tokios užkardos, kuri neleistų 80 sąsajos praeiti).
Be apkrovos, RTMP yra būsena protokolas, ir sunku sklandžiai išplėsti vaizdo serverį, nes jis turi išlaikyti kiekvieno kliento, grojančio vaizdo srautą, būseną. Nors HLS yra pagrįstas protokolu be pilietybės (HTTP), klientas tiesiog atsisiųsti įprastus TS failus, saugomus serveryje, ir balansas yra toks pat paprastas kaip įprasto HTTP failų serverio apkrovos balansavimas.
Be to, pats HLS protokolas įgyvendina duomenų perdavimo spartą, o skirtingo pralaidumo įrenginiai gali automatiškai pereiti prie vaizdo įrašų atkūrimo, kuris geriausiai tinka jų bitų greičiui. Tiesą sakant, didžiausias HLS privalumas yra tas, kad jo tėvas yra „Apple“. „Apple“ teikia gimtąją HLS palaikymą tik savo IOS įrenginiuose ir apleistoje „flash“. „Pingguo“ egzotiškas prestižas „Android“ taip pat priverstas natūraliai palaikyti HLS. Tokiu būdu „Adobe“ vaizdo sprendimai, tokie kaip „flv“ ir „rtmp“, reikalauja papildomo darbo, kurį reikia atlikti mobiliuosiuose įrenginiuose. Žinoma, didelis blykstės sukeliamas slėgis mobiliuosiuose įrenginiuose iš tikrųjų yra jos pačios problema. Tačiau HLS taip pat turi tam tikrų spąstų, kurių neįmanoma įveikti. Pvz., Tiesioginio vaizdo įrašo uždelsimo laikas naudojant HLS protokolą negali būti sutrumpintas iki mažiau nei 10 sekundžių, o RTMP protokolo uždelsimas gali siekti net 3 ar 4 sekundes. Todėl naudokite HLS atsargiai paslaugoms, kurios jautriau reaguoja į tiesioginių transliacijų vėlavimą.
Leiskite man paaiškinti šią nuotrauką. Iš kairės į dešinę, nesvarbu, kokio formato apačioje kairėje esančių įėjimų vaizdo šaltinis. Ryšio protokolas tarp jo ir serverio taip pat gali būti savavališkas (pvz., RTMP). Trumpai tariant, tiesiog persiųskite vaizdo duomenis į serverį. Tiesiog eik. Šis vaizdo įrašas konvertuojamas į HLS formato vaizdo įrašus (tiek TS, tiek m3u8 failus) serverio serveryje. Išsamiau, „Media“ koduotojas serveryje yra perkodavimo modulis, atsakingas už vaizdo įrašo duomenų perkodavimą vaizdo šaltinyje į tikslinio kodavimo formato (H264) vaizdo duomenis. Vaizdo šaltinio kodavimo formatas gali būti bet koks vaizdo įrašo kodavimo formatas (žr. „Vaizdo technologijos pagrindai“). Perkodavus į H264 vaizdo duomenis, vaizdo įrašas supjaustomas srauto segmentavimo modulyje, o pjūvio rezultatas yra indekso failas (m3u8) ir ts failas. Paveikslėlyje esantis platinimas iš tikrųjų yra tik paprastas HTTP failų serveris, o tada klientui reikia tik pasiekti pirmojo lygio indekso failo kelią ir jis automatiškai paleis HLS vaizdo srautą.
2. HLS rodyklės byla
Vadinamasis indekso failas yra anksčiau minėtas m3u8 teksto failas.
Kaip parodyta aukščiau esančiame paveikslėlyje, kliento logika groti HLS vaizdo srautą iš tikrųjų yra labai paprasta. Pirmiausia atsisiųskite pirmojo lygio indekso failą, kuriame įrašomas antrojo lygio indekso failo („Alternate-A“, „Alternate-B“, „Alternate-C“) adresas, tada klientas. Tada klientas atsisiunčia antrinį indekso failą ir atsisiunčia TS failo adresas įrašomas antriniame indekso faile, kad klientas galėtų tvarkingai atsisiųsti TS vaizdo failus ir juos nuolat leisti.
(1) Pirmojo lygio rodyklės byla
Vaizdo įrašo šaltinis: https://dco4urblvsasc.cloudfront.net/811/81095_ywfZjAuP/game/index.m3u8
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1064000
1000kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=564000
500kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=282000
250kbps.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2128000
2000kbps.m3u8
pralaidumas nurodo vaizdo srauto bitų greitį. „PROGRAM-ID“ yra nenaudingas, todėl nereikia jo skirti. Kita kiekvienos # EXT-X-STREAM-INF eilutė yra antrinio indekso failo kelias. Galite naudoti santykinį kelią arba absoliutų kelią. Pavyzdyje naudojamas santykinis kelias. Šis failas įrašo skirtingų bitų perdavimo spartos vaizdo įrašų srautų antrinio indekso failo kelią. Klientas gali nuspręsti savo dabartinį tinklo pralaidumą, kad nuspręstų, kurį vaizdo srautą leisti. Jis taip pat gali sklandžiai pereiti prie vaizdo srauto, atitinkančio pralaidumą, kai pasikeičia tinklo pralaidumas.
#EXTM3U
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:10
#EXTINF:10,
2000kbps-00001.ts
#EXTINF:10,
2000kbps-00002.ts
#EXTINF:10,
2000kbps-00003.ts
#EXTINF:10,
2000kbps-00004.ts
#EXTINF:10,
... ...
#EXTINF:10,
2000kbps-00096.ts
#EXTINF:10,
2000kbps-00097.ts
#EXTINF:10,
2000kbps-00098.ts
#EXTINF:10,
2000kbps-00099.ts
#EXTINF:10,
2000kbps-00100.ts
#ZEN-TOTAL-DURATION:999.66667
#ZEN-AVERAGE-BANDWIDTH:2190954
#ZEN-MAXIMUM-BANDWIDTH:3536205
#EXT-X-ENDLIST
Antrinis failas iš tikrųjų yra atsakingas už failo „ts“ atsisiuntimo adreso nurodymą, taip pat čia naudojamas santykinis kelias. #EXTINF nurodo kiekvieno „TS“ vaizdo įrašo failo trukmę. # EXT-X-TARGETDURATION nurodo maksimalią pjūvio failo trukmę dabartiniame vaizdo įrašų sraute, o tai reiškia, kad šių ts griežinėlių trukmė negali būti didesnė nei # EXT-X-TARGETDURATION reikšmė. # EXT-X-PLAYLIST-TYPE: VOD reiškia, kad dabartinis vaizdo srautas nėra tiesioginis srautas, bet srautas pagal pareikalavimą. Kitaip tariant, visi vaizdo įrašo failai buvo sugeneruoti, # EXT-X- ENDLIST rodo vaizdo įrašo pabaigą. Šis ženklas taip pat rodo, kad dabartinis srautas yra tiesioginis srautas.
3. Paleidimo režimas
VOD pagal pareikalavimą ypatybė yra ta, kad visus indekso failus ir TS failus galima gauti dabartiniu laiku, o visų TS failų adresai įrašomi antriniame indekso faile. Šis režimas leidžia klientams pasiekti visą turinį. Aukščiau pateiktas pavyzdys yra m3u8 struktūra pagal pareikalavimą.
Tiesioginis režimas yra generuoti M3u8 ir ts failus realiu laiku. Jo indekso failas visada keičiasi dinamiškai, todėl atkūrimo metu jis turi nuolat atsisiųsti antrinį indekso failą, kad gautų naujausią sugeneruotą „TS“ failą vaizdo įrašui paleisti. Jei antrinio indekso failo pabaigoje nėra žymės # EXT-X-ENDLIST, tai reiškia, kad tai yra tiesioginis vaizdo srautas.
Kai klientas leidžia vaizdo įrašą VOD režimu, jam iš tikrųjų reikia tik vieną kartą atsisiųsti pirmojo lygio indekso failą ir antrojo lygio indekso failą, kad gautų visų ts failų atsisiuntimo adresus. Nebent klientas pakeis pralaidumą, nereikia atsisiųsti jokių indeksų failų. Tiesiog atsisiųskite ir paleiskite TS failus iš eilės. Tačiau „Live“ režimas yra šiek tiek kitoks, nes žaidžiant taip pat kuriamas naujas „ts“ failas, todėl klientas iš tikrųjų vieną kartą atsisiunčia antrojo lygio indekso failą, tada atsisiunčia „ts“ failą ir tada atsisiunčia antrojo lygio indekso failą ( šį kartą tai buvo perrašyta antrinė indekso byla, įrašomas naujai sukurto „ts“ failo atsisiuntimo adresas), tada atsisiųstas naujas „ts“ failas ir atkūrimas pakartojamas tokiu būdu.
|
Įveskite el. Pašto adresą, kad gautumėte staigmeną
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanų kalba
sq.fmuser.org -> albanų
ar.fmuser.org -> arabų
hy.fmuser.org -> armėnas
az.fmuser.org -> azerbaidžanietis
eu.fmuser.org -> baskų
be.fmuser.org -> baltarusių
bg.fmuser.org -> bulgarų
ca.fmuser.org -> katalonų
zh-CN.fmuser.org -> kinų (supaprastinta)
zh-TW.fmuser.org -> kinų (tradicinė)
hr.fmuser.org -> kroatų
cs.fmuser.org -> čekų
da.fmuser.org -> danų
nl.fmuser.org -> Olandų
et.fmuser.org -> estų
tl.fmuser.org -> filipinietis
fi.fmuser.org -> suomių
fr.fmuser.org -> prancūzų
gl.fmuser.org -> Galisų
ka.fmuser.org -> gruzinų
de.fmuser.org -> vokiečių kalba
el.fmuser.org -> graikų
ht.fmuser.org -> Haičio kreolis
iw.fmuser.org -> hebrajų
hi.fmuser.org -> hindi
hu.fmuser.org -> vengrų
is.fmuser.org -> islandų
id.fmuser.org -> indoneziečių
ga.fmuser.org -> airių
it.fmuser.org -> italų kalba
ja.fmuser.org -> japonų
ko.fmuser.org -> korėjiečių
lv.fmuser.org -> latvių
lt.fmuser.org -> lietuvis
mk.fmuser.org -> makedonų
ms.fmuser.org -> malajiečių
mt.fmuser.org -> maltiečių
no.fmuser.org -> norvegų
fa.fmuser.org -> persų
pl.fmuser.org -> lenkų
pt.fmuser.org -> portugalų
ro.fmuser.org -> rumunų
ru.fmuser.org -> rusų
sr.fmuser.org -> serbų
sk.fmuser.org -> slovakų
sl.fmuser.org -> slovėnų
es.fmuser.org -> ispanų
sw.fmuser.org -> svahili kalba
sv.fmuser.org -> švedų
th.fmuser.org -> Tailando
tr.fmuser.org -> turkų
uk.fmuser.org -> ukrainietis
ur.fmuser.org -> urdu
vi.fmuser.org -> vietnamiečių
cy.fmuser.org -> Valų kalba
yi.fmuser.org -> jidiš
„FMUSER Wirless“ perduoda vaizdo ir garso įrašus lengviau!
Susisiekite su mumis
Adresas:
Nr. 305 kambarys „HuiLan“ pastatas Nr. 273 Huanpu Road Guangdžou, Kinija 510620
Kategorijos
Naujienlaiškis