FMUSER Bezdrátový přenos videa a zvuku snadnější!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikánština
sq.fmuser.org -> albánština
ar.fmuser.org -> arabština
hy.fmuser.org -> Arménský
az.fmuser.org -> Ázerbájdžánština
eu.fmuser.org -> baskičtina
be.fmuser.org -> běloruský
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalánština
zh-CN.fmuser.org -> čínština (zjednodušená)
zh-TW.fmuser.org -> Čínsky (zjednodušeně)
hr.fmuser.org -> chorvatština
cs.fmuser.org -> čeština
da.fmuser.org -> dánština
nl.fmuser.org -> Dutch
et.fmuser.org -> estonština
tl.fmuser.org -> filipínský
fi.fmuser.org -> finština
fr.fmuser.org -> French
gl.fmuser.org -> galicijština
ka.fmuser.org -> gruzínština
de.fmuser.org -> němčina
el.fmuser.org -> Greek
ht.fmuser.org -> haitská kreolština
iw.fmuser.org -> hebrejština
hi.fmuser.org -> hindština
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandština
id.fmuser.org -> Indonéština
ga.fmuser.org -> Irština
it.fmuser.org -> Italian
ja.fmuser.org -> japonština
ko.fmuser.org -> korejština
lv.fmuser.org -> lotyština
lt.fmuser.org -> Litevština
mk.fmuser.org -> makedonština
ms.fmuser.org -> Malajština
mt.fmuser.org -> maltština
no.fmuser.org -> Norwegian
fa.fmuser.org -> perština
pl.fmuser.org -> polština
pt.fmuser.org -> portugalština
ro.fmuser.org -> Rumunština
ru.fmuser.org -> ruština
sr.fmuser.org -> srbština
sk.fmuser.org -> slovenština
sl.fmuser.org -> Slovinština
es.fmuser.org -> španělština
sw.fmuser.org -> svahilština
sv.fmuser.org -> švédština
th.fmuser.org -> Thai
tr.fmuser.org -> turečtina
uk.fmuser.org -> ukrajinština
ur.fmuser.org -> urdština
vi.fmuser.org -> Vietnamská
cy.fmuser.org -> velština
yi.fmuser.org -> Jidiš
HLS a Http Live Streaming jsou protokoly pro streamování v reálném čase definované společností Apple. HLS je implementován na základě protokolu HTTP. Obsah přenosu zahrnuje dvě části, jednou je popisný soubor M3U8 a druhou mediální soubor TS.
1. Soubor M3U8
Mediální soubor je popsán v textu, který se skládá z řady značek.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: První řádek každého souboru M3U8 musí být tato značka.
# EXT-X-TARGETDURATION: Určete maximální délku segmentu média (sekundy). Délka času uvedená v #EXTINF musí být menší nebo rovna této maximální hodnotě. Tato hodnota se může objevit pouze jednou.
#EXTINF: Popište délku jednoho mediálního souboru. Následují mediální soubory, například ./0.ts
Může být distribuován pomocí protokolu HTTP na zařízení iOS a mac. Standardem seznamu skladeb je soubor m3u8 rozšířený o m3u a mediálním souborem je soubor MPEG2-TS nebo AAC (pouze zvuk).
Existují dva scénáře aplikace pro soubory m3u8:
Vícerychlostní adaptační proud,
#EXTM3U
# EXT-X-STREAM-INF: ID PROGRAMU = 1, Šířka pásma = 1280000
# EXT-X-STREAM-INF: ID PROGRAMU = 1, Šířka pásma = 2560000
# EXT-X-STREAM-INF: ID PROGRAMU = 1, Šířka pásma = 7680000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 65000, CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
Stream přizpůsobení jedné rychlosti
#EXTM3U
# EXT-X-TARGETDURATION: 5220
#EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
Mezinárodní organizace pro normalizaci definuje tento dokument rfc:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
Soubor m3u8 je příponou souboru m3u. Rozšířená klíčová slova jsou definována v rfc:
mezi nimi:
# EXT-X-TARGETDURATION
Definujte maximální dobu trvání každého TS.
# SEKVENCE EXT-X-MEDIA
Definujte pořadové číslo prvního souboru v aktuálním souboru m3u8. Každý soubor ts má v souboru m3u8 pevné a jedinečné sériové číslo. Sériové číslo se používá k přepnutí rychlosti kódu pro zarovnání během MBR.
# EXT-X-KEY
Definujte metodu šifrování a adresu URL souboru klíče, který se používá k získání souboru klíče 16 bajtů k dekódování souboru ts.
Atributy:
METODA
URL
# EXT-X-PROGRAM-DATUM-ČAS
Absolutní čas prvního souboru
# EXT-X-ALLOW-CACHE
Zda povolit mezipaměť.
# EXT-X-ENDLIST
Označuje konec souboru m3u8. Live m3u8 nemá tuto značku.
# EXT-X-STREAM-INF
Atributy:
BANDWIDTH určuje bitovou rychlost
PROGRAM-ID jedinečné ID
CODECS určuje typ kódování streamu
# EXT-X-DISCONTINUITY
Když dojde ke značce, změnily se následující atributy:
formát souboru
počet a typ stop
parametry kódování
sekvence kódování
sekvence časového razítka
# EXT-X-VERSION Tento atribut lze použít nebo ne, žádný nemůžete mít
M3U8 je rozdělen na M3U8 nejvyšší úrovně a M3U8 druhé úrovně. Nejvyšší úroveň M3U8 se používá hlavně pro vícerychlostní adaptaci. Soubor druhé úrovně M3U8 je soubor skutečných řezů.
Ve výchozím nastavení klient nejprve vybere požadavek s nejvyšší přenosovou rychlostí. Pokud zjistí, že datový tok nelze dosáhnout, vyžádá si stream s nízkou datovým tokem
Soubor M3U8 nejvyšší úrovně ve skutečném použití je následující:
#EXTM3U
# EXT-X-STREAM-INF: ID PROGRAMU = 201273221265, Šířka pásma = 358400
11.m3u8
# EXT-X-STREAM-INF: ID PROGRAMU = 201273221265, Šířka pásma = 972800
22.m3u8
Soubor nejvyšší úrovně M3U8 výše definuje dva soubory druhé úrovně, 11.m3u8 a 22.m3u8, a klient vybere jeden z nich, aby získal jeho obsah.
Obsah sekundárního souboru M3U8 je následující:
#EXTM3U
# EXT-X-VERZE: 1
# EXT-X-TARGETDURATION: 10
# SEKVENCE EXT-X-MEDIA: 0
#EXTINF: 3,
1-4 t
#EXTINF: 8,
1-6 t
#EXTINF: 8,
1-8 t
#EXTINF: 8,
1-10 t
#EXTINF: 8,
1-12 t
#EXTINF: 8,
1-14 t
#EXTINF: 8,
1-16 t
#EXTINF: 9,
1-18 t
#EXTINF: 6,
1-20 t
#EXTINF: 8,
1-22 t
#EXTINF: 9,
1-24 t
#EXTINF: 3,
1-26 t
# EXT-X-ENDLIST
Poté, co klient získá výše uvedený sekundární soubor M3U8, bude nadále požadovat soubor uvnitř a poté jej lze přehrát.
Výše uvedené je o situaci na vyžádání a situaci živého vysílání, v souboru M3U8 budou atributy, které říkají, že je živý, a klient bude pravidelně požadovat nové soubory M3U8.
// Když HLS realizuje on-demand a živé vysílání, rozdíl v souboru M3U8
1. Popis problému
Nedávno jsem provedl transkódovaný test přehrávání řezu pomocí HLS (HTTP Live Streaming) k provedení živého vysílání. Každý čas segmentace TS je 10 s a následující živé soubory m3u8 jsou generovány podle souborů segmentace TS
Zkopírujte kód
#EXTM3U
# SEKVENCE EXT-X-MEDIA: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hl / 1 t
#EXTINF: 10
hl / 2 t
#EXTINF: 10
hl / 3 t
#EXTINF: 10
hl / 4 t
#EXTINF: 10
hl / 5 t
#EXTINF: 10
hl / 6 t
#EXTINF: 10
hl / 7 t
#EXTINF: 10
hl / 8 t
#EXTINF: 10
hl / 9 t
#EXTINF: 10
hl / 10 t
Zkopírujte kód
Uložte výše uvedený soubor m3u8 jako live.m3u8, vložte jej do adresáře dokumentů Apache a přehrajte následující adresu URL pomocí VLC:
http://localhost/live.m3u8
Test zjistil, že první soubor, který se začal přehrávat, nebyl 1.ts. Po několika testech bylo zjištěno, že:
Pokud jsou v seznamu více než tři soubory, vždy se přehrají poslední tři soubory v seznamu
2. Řešení problémů
Je velmi smutné, že po prohledání internetu jsem nenašel žádnou účinnou informaci. Kamarád se setkal se stejnou situací, podělil se o své zkušenosti po jejím vyřešení?
Po konzultaci s kolegou kolega řekl, že je to možné, protože seznam živých souborů m3u8 je třeba aktualizovat v reálném čase. Pokud provádíme test, můžeme nejprve přidat # EXT-X-ENDLIST na konec. Tato metoda byla testována Funguje, ale toto již není aktivní režim m3u8
Po dalším hledání na internetu jsem potvrdil, že jsem konečně našel živý popis m3u8
Živý seznam skladeb (posuvné okno)
U živých relací se soubor indexu aktualizuje odstraněním mediálních identifikátorů URI ze souboru, protože jsou vytvářeny a zpřístupňovány nové mediální soubory.
Důležité: Značka EXT-X-ENDLIST se v seznamu živých skladeb nenachází, což znamená, že do souboru indexu budou přidány nové mediální soubory, jakmile budou k dispozici.
Příklad živého seznamu skladeb, jak by se objevil na začátku relace, najdete v části Výpis 3.
Seznam 3 živých seznamů skladeb na začátku relace.
Zkopírujte kód
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERZE: 3
# SEKVENCE EXT-X-MEDIA: 1
#EXTINF: 10,
fileSequence1.ts
#EXTINF: 10,
fileSequence2.ts
#EXTINF: 10,
fileSequence3.ts
#EXTINF: 10,
fileSequence4.ts
#EXTINF: 10,
fileSequence5.ts
Zkopírujte kód
Hodnota značky EXT-X-MEDIA-SEQUENCE MUSÍ být zvýšena o 1 pro každý identifikátor URI média, který je odebrán ze souboru seznamu skladeb. Identifikátor URI média musí být ze souboru seznamu stop odstraněn v pořadí, v jakém se zobrazí v seznamu stop. Aktualizovaný indexový soubor představuje pohybující se okno do nepřetržitého proudu. Tento typ relace je vhodný pro nepřetržité vysílání.
Tady je stejný seznam skladeb poté, co byl aktualizován pomocí nových mediálních identifikátorů URI:
Výpis 4 živého seznamu skladeb po aktualizaci mediálních identifikátorů URI.
Zkopírujte kód
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERZE: 3
# SEKVENCE EXT-X-MEDIA: 2
#EXTINF: 10,
fileSequence2.ts
#EXTINF: 10,
fileSequence3.ts
#EXTINF: 10,
fileSequence4.ts
#EXTINF: 10,
fileSequence5.ts
#EXTINF: 10,
fileSequence6.ts
Zkopírujte kód
3. živá pravidla aktualizace m3u8
Seznam živých souborů m3u8 je třeba neustále aktualizovat, pravidla aktualizace:
Odeberte horní soubor (myslíte si, že byl přehrán) ze seznamu skladeb
Průběžně aktualizujte značku EXT-X-MEDIA-SEQUENCE, přírůstek o 1
4. Experimentujte
Napište malý program pro generování živého m3u8 pro testování
Použití:
m3u8_gen.exe start_num list_count trvání název souboru.m3u8 [prefix]
Příklad použití:
m3u8_gen.exe 1 3 10 live.m3u8 hl /
Generovat soubor live.m3u8 jako
Zkopírujte kód
#EXTM3U
# SEKVENCE EXT-X-MEDIA: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hl / 1 t
#EXTINF: 10
hl / 2 t
#EXTINF: 10
hl / 3 t
Zkopírujte kód
Napište skript BAT a aktualizujte soubor live.m3u8 každých 10 s
Zkopírujte kód
@ Echo off
f
|
Zadejte e-mail a získejte překvapení
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikánština
sq.fmuser.org -> albánština
ar.fmuser.org -> arabština
hy.fmuser.org -> Arménský
az.fmuser.org -> Ázerbájdžánština
eu.fmuser.org -> baskičtina
be.fmuser.org -> běloruský
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Katalánština
zh-CN.fmuser.org -> čínština (zjednodušená)
zh-TW.fmuser.org -> Čínsky (zjednodušeně)
hr.fmuser.org -> chorvatština
cs.fmuser.org -> čeština
da.fmuser.org -> dánština
nl.fmuser.org -> Dutch
et.fmuser.org -> estonština
tl.fmuser.org -> filipínský
fi.fmuser.org -> finština
fr.fmuser.org -> French
gl.fmuser.org -> galicijština
ka.fmuser.org -> gruzínština
de.fmuser.org -> němčina
el.fmuser.org -> Greek
ht.fmuser.org -> haitská kreolština
iw.fmuser.org -> hebrejština
hi.fmuser.org -> hindština
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandština
id.fmuser.org -> Indonéština
ga.fmuser.org -> Irština
it.fmuser.org -> Italian
ja.fmuser.org -> japonština
ko.fmuser.org -> korejština
lv.fmuser.org -> lotyština
lt.fmuser.org -> Litevština
mk.fmuser.org -> makedonština
ms.fmuser.org -> Malajština
mt.fmuser.org -> maltština
no.fmuser.org -> Norwegian
fa.fmuser.org -> perština
pl.fmuser.org -> polština
pt.fmuser.org -> portugalština
ro.fmuser.org -> Rumunština
ru.fmuser.org -> ruština
sr.fmuser.org -> srbština
sk.fmuser.org -> slovenština
sl.fmuser.org -> Slovinština
es.fmuser.org -> španělština
sw.fmuser.org -> svahilština
sv.fmuser.org -> švédština
th.fmuser.org -> Thai
tr.fmuser.org -> turečtina
uk.fmuser.org -> ukrajinština
ur.fmuser.org -> urdština
vi.fmuser.org -> Vietnamská
cy.fmuser.org -> velština
yi.fmuser.org -> Jidiš
FMUSER Bezdrátový přenos videa a zvuku snadnější!
Kontakt
Adresa:
Budova č. 305 Room HuiLan No.273 Huanpu Road Guangzhou Čína 510620
Kategorie
Newsletter