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ș
HLS și Http Live Streaming sunt protocoale pentru streaming în timp real definite de Apple. HLS este implementat pe baza protocolului HTTP. Conținutul transmisiei include două părți, una este fișierul de descriere M3U8, iar cealaltă este fișierul media TS.
1. fișier M3U8
Fișierul media este descris în text, care este compus dintr-o serie de etichete.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Prima linie a fiecărui fișier M3U8 trebuie să fie această etichetă.
# EXT-X-TARGETDURATION: Specificați durata maximă a segmentului media (secunde). Durata de timp specificată în #EXTINF trebuie să fie mai mică sau egală cu această valoare maximă. Această valoare poate apărea o singură dată.
#EXTINF: Descrieți lungimea unui singur fișier media. Urmează fișiere media, cum ar fi ./0.ts
Poate fi distribuit prin HTTP pe dispozitiv iOS și Mac. Standardul listei de redare este fișierul m3u8 extins cu m3u, iar fișierul media este MPEG2-TS sau fișier AAC (numai audio).
Există două scenarii de aplicație pentru fișierele m3u8:
Flux de adaptare multi-rate,
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 1280000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 2560000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 7680000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 65000, CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
Flux de adaptare cu rată unică
#EXTM3U
# EXT-X-TARGETDURATION: 5220
#EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
Organizația Internațională pentru Standarde definește acest document RFC:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
Fișierul m3u8 este o extensie a fișierului m3u. Cuvintele cheie extinse sunt definite în rfc:
printre ei:
# EXT-X-TARGETDURATION
Definiți durata maximă a fiecărui TS.
# EXT-X-MEDIA-SEQUENCE
Definiți numărul de serie al primului fișier din fișierul curent m3u8. Fiecare fișier ts are un număr de serie fix și unic în fișierul m3u8. Numărul de serie este utilizat pentru a comuta rata de cod pentru alinierea în timpul MBR.
# EXT-X-KEY
Definiți metoda de criptare și adresa URL a fișierului cheie, utilizate pentru a obține fișierul cheie de 16 biți pentru a decoda fișierul ts.
Atribute:
METODA
URL-ul
# EXT-X-PROGRAM-DATE-TIME
Timpul absolut al primului fișier
# EXT-X-ALLOW-CACHE
Dacă se permite cache-ul.
# EXT-X-ENDLIST
Indică sfârșitul fișierului m3u8. Live m3u8 nu are această etichetă.
# EXT-X-STREAM-INF
Atribute:
BANDWIDTH specifică rata de biți
ID unic PROGRAM-ID
CODECS specifică tipul de codificare al fluxului
# EXT-X-DISCONTINUITY
Când se întâlnește eticheta, următoarele atribute s-au schimbat:
format de fișier
numărul și tipul de piese
parametrii de codificare
secvența de codificare
secvența de marcare a timpului
# EXT-X-VERSION Acest atribut poate fi folosit sau nu, nu puteți avea niciunul
M3U8 este împărțit în M3U8 de nivel superior și M3U8 de nivelul doi. M3U8 de nivel superior este utilizat în principal pentru adaptarea pe mai multe rate. M3U8 de nivelul doi este fișierul de felie real.
În mod implicit, clientul va selecta mai întâi solicitarea cu cel mai mare bitrate. Dacă constată că rata de biți nu poate fi atinsă, va solicita un flux cu o rată de biți scăzută
Un fișier M3U8 de nivel superior în utilizare reală este după cum urmează:
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDWIDTH = 358400
11.m3u8
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDWIDTH = 972800
22.m3u8
Fișierul M3U8 de nivel superior de mai sus definește două fișiere de nivel secundar, 11.m3u8 și 22.m3u8, iar clientul va selecta unul dintre ele pentru a obține conținutul său.
Conținutul fișierului secundar M3U8 este după cum urmează:
#EXTM3U
# EXT-X-VERSION: 1
# EXT-X-TARGETDURATION: 10
# EXT-X-MEDIA-SEQUENCE: 0
#EXTINF: 3,
1-4.ts
#EXTINF: 8,
1-6.ts
#EXTINF: 8,
1-8.ts
#EXTINF: 8,
1-10.ts
#EXTINF: 8,
1-12.ts
#EXTINF: 8,
1-14.ts
#EXTINF: 8,
1-16.ts
#EXTINF: 9,
1-18.ts
#EXTINF: 6,
1-20.ts
#EXTINF: 8,
1-22.ts
#EXTINF: 9,
1-24.ts
#EXTINF: 3,
1-26.ts
# EXT-X-ENDLIST
După ce clientul primește fișierul secundar M3U8 de mai sus, acesta va continua să solicite fișierul din interior și apoi poate fi redat.
Cele de mai sus se referă la situația la cerere și la situația difuzării în direct, vor fi atribute în fișierul M3U8 pentru a spune că este live, iar clientul va solicita periodic noi fișiere M3U8.
// Când HLS realizează difuzarea la cerere și în direct, diferența fișierului M3U8
1. Descrierea problemei
Recent am făcut un test de redare a tranșei transcodate, folosind HLS (HTTP Live Streaming) pentru a face transmisia live. Fiecare timp de segmentare TS este de 10 s, iar următoarele fișiere live m3u8 sunt generate în funcție de fișierele de segmentare TS
Copiați codul
#EXTM3U
# EXT-X-MEDIA-SEQUENCE: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hls / 1.ts
#EXTINF: 10
hls / 2.ts
#EXTINF: 10
hls / 3.ts
#EXTINF: 10
hls / 4.ts
#EXTINF: 10
hls / 5.ts
#EXTINF: 10
hls / 6.ts
#EXTINF: 10
hls / 7.ts
#EXTINF: 10
hls / 8.ts
#EXTINF: 10
hls / 9.ts
#EXTINF: 10
hls / 10.ts
Copiați codul
Salvați fișierul m3u8 de mai sus ca live.m3u8, puneți-l în directorul documentului Apache și redați următoarea adresă URL cu VLC:
http://localhost/live.m3u8
Testul a constatat că primul fișier care a început să joace nu a fost 1.ts. După mai multe teste, sa constatat că:
Atâta timp cât există mai mult de trei fișiere în listă, ultimele trei fișiere din listă sunt întotdeauna redate
2. Rezolvarea problemelor
Este foarte trist că după ce am căutat pe Internet, nu am găsit nicio informație eficientă. Un prieten a întâlnit aceeași situație, și-a împărtășit experiența după ce a rezolvat-o?
După consultarea cu un coleg, colegul a spus că este posibil, deoarece lista de fișiere live m3u8 trebuie actualizată în timp real. Dacă facem un test, putem adăuga mai întâi # EXT-X-ENDLIST la sfârșit. Această metodă a fost testată Funcționează, dar acesta nu mai este modul live m3u8
După ce am căutat din nou pe Internet, am confirmat că am găsit în sfârșit o descriere live m3u8
Playlist live (fereastră glisantă)
Pentru sesiunile live, fișierul index este actualizat prin eliminarea URI-urilor media din fișier pe măsură ce noile fișiere media sunt create și puse la dispoziție.
Important: Eticheta EXT-X-ENDLIST nu este prezentă în lista de redare Live, indicând faptul că fișierele media noi vor fi adăugate la fișierul index pe măsură ce vor fi disponibile.
Consultați Listarea 3 pentru un exemplu de listă de redare live așa cum ar apărea la începutul unei sesiuni.
Listarea a 3 Playlist live la începutul unei sesiuni.
Copiați codul
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERSION: 3
# EXT-X-MEDIA-SEQUENCE: 1
#EXTINF: 10,
fileSequence1.ts
#EXTINF: 10,
fileSequence2.ts
#EXTINF: 10,
fileSequence3.ts
#EXTINF: 10,
fileSequence4.ts
#EXTINF: 10,
fileSequence5.ts
Copiați codul
Valoarea etichetei EXT-X-MEDIA-SEQUENCE TREBUIE să fie incrementată cu 1 pentru fiecare URI media care este eliminat din fișierul listei de redare. Media URI trebuie eliminat din fișierul listei de redare în ordinea în care apar în lista de redare. Fișierul index actualizat prezintă o fereastră în mișcare într-un flux continuu. Acest tip de sesiune este potrivit pentru transmisii continue.
Iată aceeași listă de redare după ce a fost actualizată cu noi URI-uri media:
Listarea a 4 Playlist live după actualizarea URI-urilor media.
Copiați codul
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERSION: 3
# EXT-X-MEDIA-SEQUENCE: 2
#EXTINF: 10,
fileSequence2.ts
#EXTINF: 10,
fileSequence3.ts
#EXTINF: 10,
fileSequence4.ts
#EXTINF: 10,
fileSequence5.ts
#EXTINF: 10,
fileSequence6.ts
Copiați codul
3.live reguli de actualizare m3u8
Lista fișierelor live m3u8 trebuie actualizată continuu, actualizați regulile:
Eliminați fișierul de sus (credeți că a jucat) dintr-o listă de redare a fișierelor
Actualizați continuu eticheta EXT-X-MEDIA-SEQUENCE, creșteți cu 1
4. Experimentați
Scrieți un mic program pentru a genera m3u8 live pentru testare
Utilizare:
m3u8_gen.exe start_num list_count durata fișierului.m3u8 [prefix]
Exemplu de utilizare:
m3u8_gen.exe 1 3 10 live.m3u8 hls /
Generați fișierul live.m3u8 ca
Copiați codul
#EXTM3U
# EXT-X-MEDIA-SEQUENCE: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hls / 1.ts
#EXTINF: 10
hls / 2.ts
#EXTINF: 10
hls / 3.ts
Copiați codul
Scrieți un script BAT pentru a actualiza fișierul live.m3u8 la fiecare 10 secunde
Copiați codul
@ Echo off
f
|
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