FMUSER Wirless överför video och ljud enklare!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanska
sq.fmuser.org -> albanska
ar.fmuser.org -> arabiska
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbajdzjanska
eu.fmuser.org -> Baskiska
be.fmuser.org -> vitryska
bg.fmuser.org -> Bulgariska
ca.fmuser.org -> katalanska
zh-CN.fmuser.org -> Kinesiska (förenklad)
zh-TW.fmuser.org -> Kinesiska (traditionella)
hr.fmuser.org -> kroatiska
cs.fmuser.org -> Tjeckiska
da.fmuser.org -> danska
nl.fmuser.org -> Dutch
et.fmuser.org -> estniska
tl.fmuser.org -> filippinska
fi.fmuser.org -> finska
fr.fmuser.org -> French
gl.fmuser.org -> galiciska
ka.fmuser.org -> Georgiska
de.fmuser.org -> tyska
el.fmuser.org -> Greek
ht.fmuser.org -> Haitisk kreol
iw.fmuser.org -> hebreiska
hi.fmuser.org -> Hindi
hu.fmuser.org -> ungerska
is.fmuser.org -> isländska
id.fmuser.org -> Indonesiska
ga.fmuser.org -> Irländska
it.fmuser.org -> Italian
ja.fmuser.org -> japanska
ko.fmuser.org -> koreanska
lv.fmuser.org -> lettiska
lt.fmuser.org -> Litauiska
mk.fmuser.org -> makedonska
ms.fmuser.org -> Malajiska
mt.fmuser.org -> maltesiska
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiska
pl.fmuser.org -> polska
pt.fmuser.org -> portugisiska
ro.fmuser.org -> rumänska
ru.fmuser.org -> ryska
sr.fmuser.org -> serbiska
sk.fmuser.org -> Slovakiska
sl.fmuser.org -> Slovenska
es.fmuser.org -> spanska
sw.fmuser.org -> Swahili
sv.fmuser.org -> svenska
th.fmuser.org -> Thai
tr.fmuser.org -> Turkiska
uk.fmuser.org -> ukrainska
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesiskt
cy.fmuser.org -> Walesiska
yi.fmuser.org -> Jiddisch
HLS och Http Live Streaming är protokoll för realtidsströmning definierad av Apple. HLS implementeras baserat på HTTP-protokollet. Överföringsinnehållet innehåller två delar, en är M3U8-beskrivningsfilen och den andra är TS-mediefilen.
1. M3U8-fil
Mediefilen beskrivs i text, som består av en serie taggar.
#EXTM3U
# EXT-X-MÅL: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Den första raden i varje M3U8-fil måste vara den här taggen.
# EXT-X-MÅL: Ange maximal mediasegmenttid (sekunder). Den tidslängd som anges i #EXTINF måste vara mindre än eller lika med detta maximala värde. Detta värde kan bara visas en gång.
#EXTINF: Beskriv längden på en enda mediefil. Mediefiler följer, till exempel ./0.ts
Den kan distribueras med HTTP på iOS-enheter och mac. Spelliststandarden är m3u8-filen utökad med m3u och mediefilen är MPEG2-TS eller AAC-fil (endast ljud).
Det finns två applikationsscenarier för m3u8-filer:
Flervärdesanpassningsström,
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDBREDD = 1280000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDBREDD = 2560000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDBREDD = 7680000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDBREDD = 65000, CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
Enhastighetsanpassningsström
#EXTM3U
# EXT-X-MÅL: 5220
#EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
International Standards Organization definierar detta RFD-dokument:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
M3u8-filen är en förlängning av m3u-filen. De utökade nyckelorden definieras i rfc:
bland dem:
# EXT-X-MÅLTID
Definiera den maximala varaktigheten för varje TS.
# EXT-X-MEDIA-SEKVENS
Definiera serienumret för den första filen i den aktuella m3u8-filen. Varje ts-fil har ett fast och unikt serienummer i m3u8-filen. Serienumret används för att växla kodhastigheten för justering under MBR.
# EXT-X-KEY
Definiera krypteringsmetoden och webbadressen för nyckelfilen, som används för att erhålla 16 bytes nyckelfilen för att avkoda ts-filen.
Attribut:
METOD
URL
# EXT-X-PROGRAM-DATUM-TID
Absolut tid för den första filen
# EXT-X-ALLOW-CACHE
Om du vill tillåta cache.
# EXT-X-ENDLIST
Indikerar slutet på m3u8-filen. Live m3u8 har inte den här taggen.
# EXT-X-STREAM-INF
Attribut:
BANDWIDTH anger bithastigheten
PROGRAM-ID unikt ID
CODECS specificerar kodningstypen för strömmen
# EXT-X-DISCONTINUITY
När taggen påträffas har följande attribut ändrats:
filformat
antal och typ av spår
kodningsparametrar
kodningssekvens
tidsstämpelsekvens
# EXT-X-VERSION Detta attribut kan användas eller inte, du kan inte ha något
M3U8 är uppdelad i toppnivå M3U8 och andra nivå M3U8. Toppnivå M3U8 används huvudsakligen för flervärdesanpassning. Den andra nivån M3U8 är den riktiga skivfilen.
Som standard väljer klienten först begäran med högsta bithastighet. Om den finner att bithastigheten inte kan nås kommer den att begära en ström med låg bithastighet
En toppnivå M3U8-fil som faktiskt används är följande:
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDBREDD = 358400
11.m3u8
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, BANDBREDD = 972800
22.m3u8
Den översta nivån M3U8-filen definierar två andra nivåfiler, 11.m3u8 och 22.m3u8, och klienten väljer en av dem för att få sitt innehåll.
Innehållet i den sekundära M3U8-filen är som följer:
#EXTM3U
# EXT-X-VERSION: 1
# EXT-X-MÅL: 10
# EXT-X-MEDIA-SEKVENS: 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
När klienten har fått ovanstående sekundära M3U8-fil fortsätter den att begära filen inuti och sedan kan den spelas.
Ovanstående handlar om on-demand-situationen och situationen för direktsändning, det kommer attribut i M3U8-filen för att berätta att den är live, och klienten kommer regelbundet att begära nya M3U8-filer.
// När HLS inser on-demand och live-sändning är skillnaden mellan M3U8-filen
1. Problembeskrivning
Nyligen gjorde jag ett transkodat skivuppspelningstest med HLS (HTTP Live Streaming) för att göra direktsändningen. Varje TS-segmenteringstid är 10s, och följande live m3u8-filer genereras enligt TS-segmenteringsfilerna
Kopiera kod
#EXTM3U
# EXT-X-MEDIA-SEKVENS: 1
# EXT-X-MÅL: 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
Kopiera kod
Spara ovanstående m3u8-fil som live.m3u8, lägg den i Apache-dokumentkatalogen och spela upp följande URL med VLC:
http://localhost/live.m3u8
Testet visade att den första filen som började spela inte var 1.ts. Efter flera tester konstaterades att:
Så länge det finns mer än tre filer i listan, spelas alltid de tre sista filerna i listan
2. Problemlösning
Det är väldigt sorgligt att jag inte hittade någon effektiv information efter att ha sökt på Internet. En kompis stötte på samma situation, delade han sin erfarenhet efter att ha löst den?
Efter samråd med en kollega sa kollegan att det är möjligt eftersom live-m3u8-fillistan måste uppdateras i realtid. Om vi gör ett test kan vi lägga till # EXT-X-ENDLIST i slutet först. Den här metoden har testats. Det fungerar, men det här är inte längre m3u8-läget
Efter att ha sökt på Internet igen bekräftade jag att jag äntligen hittade en live m3u8-beskrivning
Live spellista (skjutfönster)
För live-sessioner uppdateras indexfilen genom att ta bort media-URI: er från filen när nya mediefiler skapas och görs tillgängliga.
Viktigt: EXT-X-ENDLIST-taggen finns inte i Live-spellistan, vilket indikerar att nya mediefiler läggs till i indexfilen när de blir tillgängliga.
Se Listing 3 för ett exempel på en live-spellista som den skulle visas i början av en session.
Listning 3 Live-spellista i början av en session.
Kopiera kod
#EXTM3U
# EXT-X-MÅL: 10
# EXT-X-VERSION: 3
# EXT-X-MEDIA-SEKVENS: 1
#EXTINF: 10,
fileSequence1.ts
#EXTINF: 10,
fileSequence2.ts
#EXTINF: 10,
fileSequence3.ts
#EXTINF: 10,
fileSequence4.ts
#EXTINF: 10,
fileSequence5.ts
Kopiera kod
EXT-X-MEDIA-SEQUENCE-taggvärdet MÅSTE ökas med 1 för varje media-URI som tas bort från spellistfilen. Media URI måste tas bort från spellistfilen i den ordning de visas i spellistan. Den uppdaterade indexfilen visar ett rörligt fönster i en kontinuerlig ström. Denna typ av session är lämplig för kontinuerliga sändningar.
Här är samma spellista efter att den har uppdaterats med nya media-URI: er:
Listning 4 Live-spellista efter uppdatering av media-URI: er.
Kopiera kod
#EXTM3U
# EXT-X-MÅL: 10
# EXT-X-VERSION: 3
# EXT-X-MEDIA-SEKVENS: 2
#EXTINF: 10,
fileSequence2.ts
#EXTINF: 10,
fileSequence3.ts
#EXTINF: 10,
fileSequence4.ts
#EXTINF: 10,
fileSequence5.ts
#EXTINF: 10,
fileSequence6.ts
Kopiera kod
3. lev m3u8-uppdateringsregler
Listan över live m3u8-filer måste uppdateras kontinuerligt, uppdatera regler:
Ta bort den översta (tänk spelade) filen i en filspellista
Uppdatera kontinuerligt taggen EXT-X-MEDIA-SEQUENCE, stegvis med 1
4. Experimentera
Skriv ett litet program för att generera live m3u8 för testning
Användning:
m3u8_gen.exe start_num list_count varaktighet filnamn.m3u8 [prefix]
Användningsexempel:
m3u8_gen.exe 1 3 10 live.m3u8 hls /
Skapa live.m3u8-fil som
Kopiera kod
#EXTM3U
# EXT-X-MEDIA-SEKVENS: 1
# EXT-X-MÅL: 10
#EXTINF: 10
hls / 1.ts
#EXTINF: 10
hls / 2.ts
#EXTINF: 10
hls / 3.ts
Kopiera kod
Skriv ett BAT-skript för att uppdatera live.m3u8-filen var tionde
Kopiera kod
@ Echo off
f
|
Ange e-post för att få en överraskning
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanska
sq.fmuser.org -> albanska
ar.fmuser.org -> arabiska
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbajdzjanska
eu.fmuser.org -> Baskiska
be.fmuser.org -> vitryska
bg.fmuser.org -> Bulgariska
ca.fmuser.org -> katalanska
zh-CN.fmuser.org -> Kinesiska (förenklad)
zh-TW.fmuser.org -> Kinesiska (traditionella)
hr.fmuser.org -> kroatiska
cs.fmuser.org -> Tjeckiska
da.fmuser.org -> danska
nl.fmuser.org -> Dutch
et.fmuser.org -> estniska
tl.fmuser.org -> filippinska
fi.fmuser.org -> finska
fr.fmuser.org -> French
gl.fmuser.org -> galiciska
ka.fmuser.org -> Georgiska
de.fmuser.org -> tyska
el.fmuser.org -> Greek
ht.fmuser.org -> Haitisk kreol
iw.fmuser.org -> hebreiska
hi.fmuser.org -> Hindi
hu.fmuser.org -> ungerska
is.fmuser.org -> isländska
id.fmuser.org -> Indonesiska
ga.fmuser.org -> Irländska
it.fmuser.org -> Italian
ja.fmuser.org -> japanska
ko.fmuser.org -> koreanska
lv.fmuser.org -> lettiska
lt.fmuser.org -> Litauiska
mk.fmuser.org -> makedonska
ms.fmuser.org -> Malajiska
mt.fmuser.org -> maltesiska
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiska
pl.fmuser.org -> polska
pt.fmuser.org -> portugisiska
ro.fmuser.org -> rumänska
ru.fmuser.org -> ryska
sr.fmuser.org -> serbiska
sk.fmuser.org -> Slovakiska
sl.fmuser.org -> Slovenska
es.fmuser.org -> spanska
sw.fmuser.org -> Swahili
sv.fmuser.org -> svenska
th.fmuser.org -> Thai
tr.fmuser.org -> Turkiska
uk.fmuser.org -> ukrainska
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesiskt
cy.fmuser.org -> Walesiska
yi.fmuser.org -> Jiddisch
FMUSER Wirless överför video och ljud enklare!
Kontakta oss
Adress:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Kina 510620
Kategorier
Nyhetsbrev