FMUSER Wirless Transmit video și audio mai ușor!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albaneză
ar.fmuser.org -> arabă
hy.fmuser.org -> Armeană
az.fmuser.org -> azeră
eu.fmuser.org -> bască
be.fmuser.org -> bielorusă
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> catalană
zh-CN.fmuser.org -> Chineză (simplificată)
zh-TW.fmuser.org -> Chineză (tradițională)
hr.fmuser.org -> croată
cs.fmuser.org -> cehă
da.fmuser.org -> Daneză
nl.fmuser.org -> Dutch
et.fmuser.org -> estonă
tl.fmuser.org -> filipinez
fi.fmuser.org -> finlandeză
fr.fmuser.org -> Franceză
gl.fmuser.org -> Galeză
ka.fmuser.org -> Georgiană
de.fmuser.org -> germană
el.fmuser.org -> greacă
ht.fmuser.org -> Creole haitian
iw.fmuser.org -> ebraică
hi.fmuser.org -> Hindi
hu.fmuser.org -> Maghiară
is.fmuser.org -> islandeză
id.fmuser.org -> indoneziană
ga.fmuser.org -> irlandeză
it.fmuser.org -> Italiană
ja.fmuser.org -> japoneză
ko.fmuser.org -> coreeană
lv.fmuser.org -> letonă
lt.fmuser.org -> lituaniană
mk.fmuser.org -> macedoneană
ms.fmuser.org -> Malay
mt.fmuser.org -> malteză
no.fmuser.org -> norvegiană
fa.fmuser.org -> persană
pl.fmuser.org -> poloneză
pt.fmuser.org -> portugheză
ro.fmuser.org -> Română
ru.fmuser.org -> rusă
sr.fmuser.org -> sârbă
sk.fmuser.org -> slovacă
sl.fmuser.org -> Slovenă
es.fmuser.org -> spaniolă
sw.fmuser.org -> Swahili
sv.fmuser.org -> suedeză
th.fmuser.org -> Thai
tr.fmuser.org -> turcă
uk.fmuser.org -> ucraineană
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnameză
cy.fmuser.org -> galeză
yi.fmuser.org -> idiș
Astăzi voi introduce acordul HLS, care a fost propus și promovat de Apple. Iată o definiție din Wikipedia.
HTTP Live Streaming (prescurtat ca HLS) este un protocol de transmisie a rețelei de streaming media bazat pe HTTP propus de Apple. Face parte din sistemele software Apple QuickTime X și iPhone. Funcționează împărțind întregul flux în fișiere mici bazate pe HTTP pentru descărcare și descărcând doar câteva la un moment dat. Când fluxul media este redat, clientul poate alege să descarce aceeași resursă la rate diferite din mai multe surse diferite, permițând sesiunii media streaming să se adapteze la diferite rate de date. Atunci când începe o sesiune de difuzare media, clientul va descărca un fișier de redare extins M3U (m3u8) care conține metadate pentru a găsi fluxurile media disponibile.
HLS solicită numai mesaje HTTP de bază. Spre deosebire de Protocolul de transport în timp real (RTP), HLS poate trece prin orice firewall sau server proxy care permite trecerea datelor HTTP. De asemenea, este ușor de utilizat rețelele de distribuție a conținutului pentru a transmite fluxuri media.
Apple consideră protocolul HLS ca o schiță a internetului (prezentată pas cu pas), care a fost prezentată IETF ca un standard informal în prima fază. Cu toate acestea, chiar dacă Apple transmite ocazional câteva actualizări minore, IETF nu a întreprins nicio altă acțiune în ceea ce privește dezvoltarea acestui standard. [1]
1. Introducere în acord
Acordul HLS prevede:
(1) Formatul de ambalare al videoclipului este TS.
(2) Formatul de codare video este H264, iar formatul de codare audio este MP3, AAC sau AC-3.
(3) Pe lângă fișierul video TS în sine, este definit și un fișier m3u8 (fișier text) utilizat pentru a controla redarea.
De ce propune Apple protocolul HLS? De fapt, este în principal pentru a rezolva unele dintre problemele din protocolul RTMP. De exemplu, protocolul RTMP nu folosește o interfață HTTP standard pentru a transmite date, deci poate fi blocat de un firewall în unele medii de rețea speciale. Cu toate acestea, deoarece HLS folosește protocolul HTTP pentru a transmite date, nu va întâlni situația de a fi protejat de firewall (nu există niciun firewall care să nu lase să treacă interfața 80).
În plus față de încărcare, RTMP este un protocol de stare și este dificil să extindeți fără probleme serverul video, deoarece trebuie să mențină starea pentru fiecare client care redă fluxul video. În timp ce HLS se bazează pe protocolul stateless (HTTP), clientul descarcă fișierele TS obișnuite stocate în server în ordine, iar soldul este la fel de simplu ca echilibrarea încărcării serverului de fișiere HTTP obișnuit.
În plus, protocolul HLS în sine implementează adaptarea ratei de biți, iar dispozitivele cu lățimi de bandă diferite pot trece automat la redarea video care se potrivește cel mai bine cu viteza lor de biți. De fapt, cel mai mare avantaj al HLS este că tatăl său este Apple. Apple oferă suport nativ pentru HLS numai pe propriile dispozitive IOS și flash abandonat. Android este, de asemenea, forțat de „prestigiul exotic” al lui Pingguo să susțină nativ HLS. În acest fel, soluțiile video Adobe, cum ar fi flv și rtmp, necesită o muncă suplimentară pentru a fi redată pe dispozitivele mobile. Desigur, presiunea de înaltă performanță cauzată de bliț pe dispozitivele mobile este într-adevăr propria sa problemă. Cu toate acestea, HLS are și unele capcane care nu pot fi depășite. De exemplu, timpul de întârziere al videoclipurilor live folosind protocolul HLS nu poate fi redus la mai puțin de 10 secunde, în timp ce întârzierea protocolului RTMP poate fi de până la 3 sau 4 secunde. Prin urmare, vă rugăm să utilizați HLS cu precauție pentru serviciile care sunt mai sensibile la întârzierile de difuzare în direct.
Lasă-mă să explic această imagine. De la stânga la dreapta, nu contează ce format are sursa video a intrărilor din stânga jos. Protocolul de comunicare dintre el și server poate fi, de asemenea, arbitrar (cum ar fi RTMP). Pe scurt, transmiteți datele video către server. Doar pleaca. Acest videoclip este convertit în fișiere video în format HLS (atât fișiere TS, cât și fișiere m3u8) de pe serverul serverului. În detaliu, codificatorul media din server este un modul de transcodare responsabil pentru transcodarea datelor video din sursa video la datele video ale formatului de codificare țintă (H264). Formatul de codare a sursei video poate fi orice format de codificare video (consultați „Noțiuni fundamentale despre tehnologia video”). După transcodare în date video H264, videoclipul este tranșat în modulul de segmentare a fluxului, iar rezultatul feliei este fișierul index (m3u8) și fișierul ts. Distribuția din imagine este de fapt doar un server de fișiere HTTP obișnuit, iar clientul trebuie doar să acceseze calea fișierului index de primul nivel și va reda automat fluxul video HLS.
2. Fișier index HLS
Așa-numitul fișier index este fișierul text m3u8 menționat anterior.
Așa cum se arată în figura de mai sus, logica clientului de a reda fluxul video HLS este de fapt foarte simplă. Mai întâi descărcați fișierul Index de primul nivel, care înregistrează adresa fișierului index de nivel doi (Alternate-A, Alternate-B, Alternate-C), apoi clientul Clientul apoi descarcă fișierul index secundar și descărcați adresa fișierului TS este înregistrată în fișierul index secundar, astfel încât clientul să poată descărca fișierele video TS în ordine și să le redea continuu.
(1) Fișier index de primul nivel
Sursa video: 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
lățimea de bandă specifică rata de biți a fluxului video. ID-ul PROGRAM este inutil și nu este nevoie să acordați atenție. Următoarea linie a fiecărui # EXT-X-STREAM-INF este calea fișierului index secundar. Puteți utiliza o cale relativă sau o cale absolută. Calea relativă este utilizată în exemplu. Acest fișier înregistrează calea fișierului index secundar al diferitelor fluxuri video cu bitrate. Clientul își poate evalua propria lățime de bandă de rețea curentă pentru a decide ce flux video să redea. De asemenea, poate comuta fără probleme la un flux video care se potrivește cu lățimea de bandă atunci când lățimea de bandă a rețelei se schimbă.
#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
Fișierul secundar este de fapt responsabil pentru furnizarea adresei de descărcare a fișierului ts, iar calea relativă este de asemenea utilizată aici. #EXTINF reprezintă durata fiecărui fișier video TS. # EXT-X-TARGETDURATION specifică durata maximă a fișierului de felii în fluxul video curent, ceea ce înseamnă că durata acestor felii ts nu poate fi mai mare decât valoarea # EXT-X-TARGETDURATION. # EXT-X-PLAYLIST-TYPE: VOD înseamnă că fluxul video curent nu este un flux live, ci un flux la cerere. Cu alte cuvinte, toate fișierele ts ale videoclipului au fost generate, # EXT-X- ENDLIST indică sfârșitul videoclipului. Deținerea acestui semn indică, de asemenea, că fluxul curent este un flux non-live.
3. Mod redare
Caracteristica VOD la cerere este că toate fișierele index și fișierele ts pot fi obținute la momentul actual, iar adresele tuturor fișierelor ts sunt înregistrate în fișierul index secundar. Acest mod permite clienților să acceseze tot conținutul. Exemplul de mai sus este structura m3u8 în modul la cerere.
Modul live este de a genera fișiere M3u8 și ts în timp real. Fișierul său index se schimbă întotdeauna dinamic și trebuie să descarce fișierul index secundar continuu în timpul redării pentru a obține cel mai recent fișier ts generat pentru a reda videoclipul. Dacă nu există nici o marcă # EXT-X-ENDLIST la sfârșitul unui fișier index secundar, înseamnă că este un flux video live.
Când clientul redă un videoclip în modul VOD, de fapt, trebuie să descarce fișierul index de primul nivel și fișierul index de nivel doi o singură dată pentru a obține adresele de descărcare ale tuturor fișierelor ts. Cu excepția cazului în care clientul comută bitrate-ul, nu este nevoie să descărcați fișiere index. Doar descărcați și redați fișierele ts în ordine. Dar modul Live este ușor diferit, deoarece în timpul redării, este generat și noul fișier ts, astfel încât clientul descarcă de fapt fișierul index al doilea nivel o dată, apoi descarcă fișierul ts și apoi descarcă fișierul index al doilea nivel ( de data aceasta Fișierul index secundar a fost rescris, adresa de descărcare a fișierului ts nou generat este înregistrată), apoi noul fișier ts este descărcat și redarea se repetă în acest fel.
|
Introduceți adresa de e-mail pentru a primi o surpriză
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> Albaneză
ar.fmuser.org -> arabă
hy.fmuser.org -> Armeană
az.fmuser.org -> azeră
eu.fmuser.org -> bască
be.fmuser.org -> bielorusă
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> catalană
zh-CN.fmuser.org -> Chineză (simplificată)
zh-TW.fmuser.org -> Chineză (tradițională)
hr.fmuser.org -> croată
cs.fmuser.org -> cehă
da.fmuser.org -> Daneză
nl.fmuser.org -> Dutch
et.fmuser.org -> estonă
tl.fmuser.org -> filipinez
fi.fmuser.org -> finlandeză
fr.fmuser.org -> Franceză
gl.fmuser.org -> Galeză
ka.fmuser.org -> Georgiană
de.fmuser.org -> germană
el.fmuser.org -> greacă
ht.fmuser.org -> Creole haitian
iw.fmuser.org -> ebraică
hi.fmuser.org -> Hindi
hu.fmuser.org -> Maghiară
is.fmuser.org -> islandeză
id.fmuser.org -> indoneziană
ga.fmuser.org -> irlandeză
it.fmuser.org -> Italiană
ja.fmuser.org -> japoneză
ko.fmuser.org -> coreeană
lv.fmuser.org -> letonă
lt.fmuser.org -> lituaniană
mk.fmuser.org -> macedoneană
ms.fmuser.org -> Malay
mt.fmuser.org -> malteză
no.fmuser.org -> norvegiană
fa.fmuser.org -> persană
pl.fmuser.org -> poloneză
pt.fmuser.org -> portugheză
ro.fmuser.org -> Română
ru.fmuser.org -> rusă
sr.fmuser.org -> sârbă
sk.fmuser.org -> slovacă
sl.fmuser.org -> Slovenă
es.fmuser.org -> spaniolă
sw.fmuser.org -> Swahili
sv.fmuser.org -> suedeză
th.fmuser.org -> Thai
tr.fmuser.org -> turcă
uk.fmuser.org -> ucraineană
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnameză
cy.fmuser.org -> galeză
yi.fmuser.org -> idiș
FMUSER Wirless Transmit video și audio mai ușor!
Contact
Adresa:
Nr. 305 Clădirea HuiLan nr. 273 Huanpu Road Guangzhou China 510620
Categorii
Stiri lunare via e-mail