FMUSER Wirless Trasmetti video e audio più facilmente!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanese
ar.fmuser.org -> Arabo
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbaigiano
eu.fmuser.org -> Basco
be.fmuser.org -> bielorusso
bg.fmuser.org -> Bulgaro
ca.fmuser.org -> Catalano
zh-CN.fmuser.org -> Cinese (semplificato)
zh-TW.fmuser.org -> Cinese (Tradizionale)
hr.fmuser.org -> croato
cs.fmuser.org -> ceco
da.fmuser.org -> danese
nl.fmuser.org -> Olandese
et.fmuser.org -> Estone
tl.fmuser.org -> Filippino
fi.fmuser.org -> finlandese
fr.fmuser.org -> Francese
gl.fmuser.org -> Galiziano
ka.fmuser.org -> georgiano
de.fmuser.org -> tedesco
el.fmuser.org -> Greca
ht.fmuser.org -> Creolo haitiano
iw.fmuser.org -> Ebraico
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> Islandese
id.fmuser.org -> Indonesiano
ga.fmuser.org -> Irlandese
it.fmuser.org -> Italiano
ja.fmuser.org -> giapponese
ko.fmuser.org -> coreano
lv.fmuser.org -> Lettone
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedone
ms.fmuser.org -> Malese
mt.fmuser.org -> Maltese
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiano
pl.fmuser.org -> polacco
pt.fmuser.org -> portoghese
ro.fmuser.org -> Romeno
ru.fmuser.org -> Russo
sr.fmuser.org -> Serbo
sk.fmuser.org -> slovacco
sl.fmuser.org -> Sloveno
es.fmuser.org -> spagnolo
sw.fmuser.org -> Swahili
sv.fmuser.org -> svedese
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> Ucraino
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> Gallese
yi.fmuser.org -> Yiddish
HLS e Http Live Streaming sono protocolli per lo streaming in tempo reale definiti da Apple. HLS è implementato in base al protocollo HTTP. Il contenuto della trasmissione comprende due parti, una è il file di descrizione M3U8 e l'altra è il file multimediale TS.
1. File M3U8
Il file multimediale è descritto in testo, che è composto da una serie di tag.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: la prima riga di ogni file M3U8 deve essere questo tag.
# EXT-X-TARGETDURATION: specifica la durata massima del segmento multimediale (secondi). Il periodo di tempo specificato in #EXTINF deve essere inferiore o uguale a questo valore massimo. Questo valore può apparire solo una volta.
#EXTINF: descrive la lunghezza di un singolo file multimediale. Seguono i file multimediali, come ./0.ts
Può essere distribuito tramite HTTP su dispositivo iOS e mac. Lo standard della playlist è il file m3u8 esteso da m3u e il file multimediale è un file MPEG2-TS o AAC (solo audio).
Esistono due scenari applicativi per i file m3u8:
Flusso di adattamento multi-velocità,
#EXTM3U
# EXT-X-STREAM-INF: ID-PROGRAMMA = 1, LARGHEZZA DI BANDA = 1280000
# EXT-X-STREAM-INF: ID-PROGRAMMA = 1, LARGHEZZA DI BANDA = 2560000
# EXT-X-STREAM-INF: ID-PROGRAMMA = 1, LARGHEZZA DI BANDA = 7680000
# EXT-X-STREAM-INF: ID-PROGRAMMA = 1, LARGHEZZA DI BANDA = 65000, CODEC = "mp4a.40.5"
http://example.com/audio-only.m3u8
Flusso di adattamento a tasso unico
#EXTM3U
# EXT-X-TARGETDURATION: 5220
#EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
L'International Standards Organization definisce questo documento rfc:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
Il file m3u8 è un'estensione del file m3u. Le parole chiave estese sono definite nella rfc:
tra loro:
# EXT-X-TARGETDURATION
Definisci la durata massima di ogni TS.
# EXT-X-MEDIA-SEQUENCE
Definisci il numero di serie del primo file nel file m3u8 corrente. Ogni file ts ha un numero di serie fisso e univoco nel file m3u8. Il numero di serie viene utilizzato per cambiare la velocità del codice per l'allineamento durante l'MBR.
# EXT-X-KEY
Definire il metodo di crittografia e l'URL del file della chiave, utilizzato per ottenere il file della chiave da 16 byte per decodificare il file ts.
Attributi:
METODO
URL
# EXT-X-PROGRAM-DATE-TIME
Tempo assoluto del primo file
# EXT-X-ALLOW-CACHE
Se consentire la cache.
# EXT-X-ENDLIST
Indica la fine del file m3u8. Live m3u8 non ha questo tag.
# EXT-X-STREAM-INF
Attributi:
BANDWIDTH specifica la velocità in bit
ID univoco PROGRAM-ID
CODECS specifica il tipo di codifica del flusso
# EXT-X-DISCONTINUITY
Quando viene rilevato il tag, i seguenti attributi sono cambiati:
formato del file
numero e tipo di tracce
parametri di codifica
sequenza di codifica
sequenza di timestamp
# EXT-X-VERSION Questo attributo può essere usato o meno, non puoi averne nessuno
M3U8 è diviso in M3U8 di primo livello e M3U8 di secondo livello. L'M3U8 di livello superiore viene utilizzato principalmente per l'adattamento a più velocità. L'M3U8 di secondo livello è il vero file slice.
Per impostazione predefinita, il client selezionerà prima la richiesta con il bitrate più alto. Se rileva che il bitrate non può essere raggiunto, richiederà uno stream con un bitrate basso
Un file M3U8 di primo livello nell'uso effettivo è il seguente:
#EXTM3U
# EXT-X-STREAM-INF: ID-PROGRAMMA = 201273221265, LARGHEZZA DI BANDA = 358400
11.m3u8
# EXT-X-STREAM-INF: ID-PROGRAMMA = 201273221265, LARGHEZZA DI BANDA = 972800
22.m3u8
Il file M3U8 di primo livello sopra definisce due file di secondo livello, 11.m3u8 e 22.m3u8, e il client ne selezionerà uno per ottenere il suo contenuto.
Il contenuto del file M3U8 secondario è il seguente:
#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
Dopo che il client ottiene il file M3U8 secondario di cui sopra, continuerà a richiedere il file al suo interno e quindi potrà essere riprodotto.
Quanto sopra riguarda la situazione su richiesta e la situazione della trasmissione in diretta, ci saranno attributi nel file M3U8 per indicare che è in diretta e il client richiederà periodicamente nuovi file M3U8.
// Quando HLS realizza trasmissioni on-demand e live, la differenza del file M3U8
1. Descrizione del problema
Recentemente ho eseguito un test di riproduzione di slice transcodificato, utilizzando HLS (HTTP Live Streaming) per eseguire la trasmissione in diretta. Ogni tempo di segmentazione TS è di 10 secondi ei seguenti file m3u8 live vengono generati in base ai file di segmentazione TS
Copia codice
#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 codice
Salva il file m3u8 sopra come live.m3u8, mettilo nella directory dei documenti di Apache e riproduci il seguente URL con VLC:
http://localhost/live.m3u8
Il test ha rilevato che il primo file ad iniziare la riproduzione non era 1.ts. Dopo diversi test, si è riscontrato che:
Finché sono presenti più di tre file nell'elenco, vengono sempre riprodotti gli ultimi tre file nell'elenco
2. Problem solving
È molto triste che dopo aver cercato in Internet, non ho trovato alcuna informazione efficace. Un amico ha riscontrato la stessa situazione, ha condiviso la sua esperienza dopo averla risolta?
Dopo essersi consultato con un collega, il collega ha detto che è possibile perché l'elenco dei file m3u8 live deve essere aggiornato in tempo reale. Se facciamo un test, possiamo aggiungere prima # EXT-X-ENDLIST alla fine. Questo metodo è stato testato Funziona, ma questa non è più la modalità m3u8 live
Dopo aver cercato di nuovo in Internet, ho confermato di aver finalmente trovato una descrizione m3u8 dal vivo
Playlist dal vivo (finestra scorrevole)
Per le sessioni live, il file di indice viene aggiornato rimuovendo gli URI multimediali dal file quando vengono creati e resi disponibili nuovi file multimediali.
Importante: il tag EXT-X-ENDLIST non è presente nella playlist dal vivo, indicando che i nuovi file multimediali verranno aggiunti al file indice non appena saranno disponibili.
Vedere il Listato 3 per un esempio di playlist dal vivo come apparirebbe all'inizio di una sessione.
Listato 3 Playlist dal vivo all'inizio di una sessione.
Copia codice
#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 codice
Il valore del tag EXT-X-MEDIA-SEQUENCE DEVE essere incrementato di 1 per ogni URI multimediale rimosso dal file della playlist. Gli URI multimediali devono essere rimossi dal file della playlist nell'ordine in cui appaiono nella playlist. Il file indice aggiornato presenta una finestra in movimento in un flusso continuo. Questo tipo di sessione è adatto per trasmissioni continue.
Ecco la stessa playlist dopo che è stata aggiornata con i nuovi URI multimediali:
Listato 4 Playlist live dopo l'aggiornamento degli URI multimediali.
Copia codice
#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 codice
3.live regole di aggiornamento m3u8
L'elenco dei file m3u8 live deve essere aggiornato continuamente, aggiorna le regole:
Rimuovi il file in alto (credo riprodotto) in una playlist di file
Aggiorna continuamente il tag EXT-X-MEDIA-SEQUENCE, incrementa di 1
4. Esperimento
Scrivi un piccolo programma per generare m3u8 live per i test
Uso:
m3u8_gen.exe start_num list_count durata nomefile.m3u8 [prefisso]
Esempio di utilizzo:
m3u8_gen.exe 1 3 10 live.m3u8 hls /
Genera file live.m3u8 come
Copia codice
#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 codice
Scrivi uno script BAT per aggiornare il file live.m3u8 ogni 10 secondi
Copia codice
@ Echo off
f
|
Inserisci l'email per ricevere una sorpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albanese
ar.fmuser.org -> Arabo
hy.fmuser.org -> Armenian
az.fmuser.org -> Azerbaigiano
eu.fmuser.org -> Basco
be.fmuser.org -> bielorusso
bg.fmuser.org -> Bulgaro
ca.fmuser.org -> Catalano
zh-CN.fmuser.org -> Cinese (semplificato)
zh-TW.fmuser.org -> Cinese (Tradizionale)
hr.fmuser.org -> croato
cs.fmuser.org -> ceco
da.fmuser.org -> danese
nl.fmuser.org -> Olandese
et.fmuser.org -> Estone
tl.fmuser.org -> Filippino
fi.fmuser.org -> finlandese
fr.fmuser.org -> Francese
gl.fmuser.org -> Galiziano
ka.fmuser.org -> georgiano
de.fmuser.org -> tedesco
el.fmuser.org -> Greca
ht.fmuser.org -> Creolo haitiano
iw.fmuser.org -> Ebraico
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> Islandese
id.fmuser.org -> Indonesiano
ga.fmuser.org -> Irlandese
it.fmuser.org -> Italiano
ja.fmuser.org -> giapponese
ko.fmuser.org -> coreano
lv.fmuser.org -> Lettone
lt.fmuser.org -> Lithuanian
mk.fmuser.org -> Macedone
ms.fmuser.org -> Malese
mt.fmuser.org -> Maltese
no.fmuser.org -> Norwegian
fa.fmuser.org -> persiano
pl.fmuser.org -> polacco
pt.fmuser.org -> portoghese
ro.fmuser.org -> Romeno
ru.fmuser.org -> Russo
sr.fmuser.org -> Serbo
sk.fmuser.org -> slovacco
sl.fmuser.org -> Sloveno
es.fmuser.org -> spagnolo
sw.fmuser.org -> Swahili
sv.fmuser.org -> svedese
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> Ucraino
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> Gallese
yi.fmuser.org -> Yiddish
FMUSER Wirless Trasmetti video e audio più facilmente!
Contatti
Indirizzo:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Cina 510620
Categorie
Newsletter