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
sfondo
MP4 è il nostro formato video comune e spesso quando riproduciamo video del server, è direttamente la sorgente video MP4 richiesta. Ma in realtà, questo non va bene. Il file di intestazione MP4 [ftyp + moov] è grande e la riproduzione iniziale deve scaricare il file di intestazione completo e analizzarlo, quindi scaricare una certa lunghezza di clip video riproducibile da riprodurre. Inoltre, all'aumentare delle dimensioni del video, il file di intestazione continuerà a crescere e il tempo di riproduzione iniziale sarà più lungo. In considerazione di questa situazione, è necessario un metodo che possa velocizzare l'analisi iniziale del video. HLS è la soluzione proposta da Apple per risolvere questo problema.
HLS
HLS è l'abbreviazione di HTTP Live Streaming. È un protocollo di trasmissione di rete di streaming multimediale basato su HTTP proposto da Apple. Può supportare live e on-demand allo stesso tempo, nonché multi-definizione, doppia traccia audio e video, sottotitoli e altre funzioni. Il suo principio è dividere un intero video in più piccoli video e la riproduzione completa è formata unendo questi segmenti.
HLS è ampiamente utilizzato sui terminali mobili. Gli attuali client che supportano il protocollo HLS includono:
iOS 3.0 e versioni successive, AVPlayer supporta nativamente HLS
Android 3.0 e superiori
Adobe Flash Player 11.0 e versioni successive
Il suo principio generale è questo:
1. Raccogli audio e video
2. Codifica audio e video sul server
3. Dopo la codifica, consegnalo al Segmentatore di flusso sotto forma di flusso di trasporto MPEG-2
4. L'affettatrice crea un file indice e una playlist ts, il file indice viene utilizzato per indicare la posizione dell'audio e del video e ts è una vera clip multimediale
5. Mettere le risorse del passaggio precedente sul server HTTP
6. Il client richiede il file di indice per la riproduzione e il contenuto della riproduzione può essere trovato tramite il file di indice
M3U8
Un passaggio chiave per realizzare HLS è il quarto passaggio sopra, ovvero l'organizzazione dei file indice e delle playlist ts. Il formato M3U8 viene utilizzato qui. M3U8 è la versione Unicode di M3U, 8 significa che viene utilizzata la codifica UTF-8 e sia M3U che M3U8 sono formati di file per elenchi multimediali.
Descrizione di formato M3U8
A volte potrebbe essere necessario modificare manualmente il contenuto del file M3U8 per il test o in alcuni casi speciali, quindi è necessario avere una certa comprensione del suo formato. La definizione di questo formato è scritta nel documento RFC 8216. Di seguito alcune note:
I file M3U8 devono essere codificati in UTF-8 e non possono utilizzare l'ordine byte Byte Order Mark (BOM) e non possono contenere caratteri di controllo utf-8 (U + 0000 ~ U_001F e U + 007F ~ u + 009F)
Ogni riga del contenuto del file M3U8 è una riga vuota, un URI o una stringa che inizia con # e non possono essere visualizzati caratteri vuoti.
I tag incorporati sono tutte stringhe che iniziano con #EXT e fanno distinzione tra maiuscole e minuscole.
L'URI è il percorso del contenuto, che può essere un percorso relativo o un percorso assoluto
File di elenco M3U8 master
Il file di indice M3U8 principale viene generalmente utilizzato per specificare più origini di indice. Analizziamo prima il contenuto del file m3u8 principale hls_vod_mvp.m3u8, la sua testa è così
Formato dell'intestazione
#EXTM3U
# EXT-X-VERSION: 7
# EXT-X-INDEPENDENT-SEGMENTS Copia codice
# EXTM3U indica che il file è in formato M3U e tutti i file in formato M3U dovrebbero mettere il contenuto sulla prima riga.
# EXT-X-VERSIOn indica la versione compatibile della playlist, che attualmente è 7.
# EXT-X-INDEPENDENT-SEGMENTS Questo tag indica che tutti i campioni multimediali in un segmento multimediale possono essere decodificati in modo indipendente senza fare affidamento su altre informazioni sul segmento multimediale.
Formato dei sottotitoli
Il contenuto di seguito è alcune didascalie, il contenuto delle didascalie non è necessario.
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subs", NAME = "English", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "eng", URI = "subtitles / eng / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subsC", NAME = "English", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "eng", URI = "subtitles / engc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subs", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "jpn", URI = "subtitles / jpn / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subsC", NAME = "Japanese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "jpn", URI = "subtitles / jpnc / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subs", NAME = "Chinese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "zho", URI = "subtitles / zho / prog_index.m3u8 "
# EXT-X-MEDIA: TYPE = SUBTITLES, GROUP-ID = "subsC", NAME = "Chinese", DEFAULT = YES, AUTOSELECT = YES, FORCED = NO, LANGUAGE = "zho", URI = "subtitles / zhoc / prog_index.m3u8 "Copia il codice
# EXT-X-MEDIA viene utilizzato per specificare le risorse dell'elenco multimediale multilingue dello stesso contenuto.
TIPO è il tipo di risorsa e i contenuti opzionali sono: AUDIO, VIDEO, SOTTOTITOLI, DIDASCALIE CHIUSE.
Il contenuto precedente imposta TYPE = SUBTITLES, che è il tipo di sottotitoli.
GROUP-ID è il gruppo a cui appartiene la traduzione multilingue ed è un parametro obbligatorio
NAME è le informazioni di descrizione leggibili del flusso di traduzione e questo valore corrisponde a displayName di AVMediaSelectionOption.
DEFAULT, AUTOSELECT, FORCED sono tre valori BOOL che corrispondono a se il flusso di traduzione è selezionato per impostazione predefinita se mancano le informazioni necessarie. Il flusso di riproduzione viene riprodotto quando l'utente non visualizza le impostazioni. FORZATO è valido solo per il tipo di sottotitolo e viene utilizzato per contrassegnare la selezione automatica corrente del flusso di traduzione. .
LINGUA viene utilizzato per specificare il tipo di lingua, che è impostato in base al [codice lingua ISO 639] (https://www.w3.org/WAI/ER/WD-AERT/iso639.htm "Codice lingua ISO 639"). Quando il lettore predefinito del sistema seleziona i sottotitoli, il nome dell'elenco dei sottotitoli visualizzato viene impostato in base a questo valore.
L'URI è l'informazione sulla posizione della risorsa, dove corrisponde a un file M3U8 sottotitolato. subtitles / eng / prog_index.m3u8 è un percorso relativo,
Attraverso le informazioni di cui sopra, possiamo analizzare il significato del contenuto di cui sopra come: Il video corrente supporta tre sottotitoli: inglese, giapponese e cinese. Ma ogni lingua ha due messaggi EXT-X-MEDIA. La differenza tra loro è il raggruppamento, uno è raggruppato in sottotitoli e l'altro è raggruppato in subC. Perché ci sono due gruppi? Ne parlerò più tardi.
Formato video
Guarda di nuovo in basso, per l'indice del contenuto video:
#EXT-X-STREAM-INF:BANDWIDTH=827299,AVERAGE-BANDWIDTH=747464,CODECS="avc1.64001f,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970,AUDIO="program_audio",SUBTITLES=" subs"
0640 / 0640.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=360849,AVERAGE-BANDWIDTH=320932,CODECS="avc1.64001f",RESOLUTION=640x360,URI="0640/0640_I-Frame.m3u8"Copy code
EXT-X-STREAM-INF: questo attributo specifica un'origine di backup, ovvero il percorso di riproduzione video e alcune informazioni video. La seguente è la configurazione del contenuto corrispondente: LARGHEZZA DI BANDA è il bit rate di picco, 827299 è 827299bit / s, che è il tempo di punta più alto Consuma 101 KB di traffico al secondo.
AVERAGE-BANDWIDTH è il bit rate medio, 747464
CODECS è informazioni di codifica, avc1.64001f, mp4a.40.2, avc rappresenta il formato di codifica h264, il seguente 64001f è il parametro di codifica rappresentato da esadecimale, 64, 00, 1f rappresentano rispettivamente tre diversi valori di parametro. mp4a è un formato di codifica audio e il seguente 40.2 rappresenta i parametri di codifica audio.
RISOLUZIONE è la risoluzione video. La risoluzione della sorgente video corrente è 640x360.
FRAME-RATE è il frame rate massimo, 29.970 rappresenta il frame rate massimo della riproduzione corrente è 29.970 frame al secondo.
AUDIO è il gruppo audio e program_audio è il nome del gruppo audio corrispondente.
SUBTITLES indica il gruppo di sottotitoli corrispondente e subs è il nome del gruppo di sottotitoli corrispondente. Le informazioni sui sottotitoli sopra hanno un ID GRUPPO e questo valore corrisponde ad esso.
L'URI è il percorso del contenuto, 0640 / 0640.m3u8 corrisponde al percorso del file m3u8 della sorgente video. Questo può essere visto nelle informazioni sull'acquisizione dei pacchetti.
Sotto EXT-X-STREAM-INF c'è EXT-XI-FRAME-STREAM-INF, che rappresenta il fotogramma I (fotogramma chiave) della risorsa multimediale contenuta nel file della playlist. Poiché il fotogramma I è solo un'immagine, non contiene contenuto audio e i parametri rimanenti sono coerenti con il formato del contenuto video.
Successivamente, ci sono sorgenti video corrispondenti a diverse risoluzioni, 1920x1080, 1280x720, 960x540, 480x270. Poiché HLS cambierà automaticamente la risoluzione in base alla situazione della rete, in genere vengono preparate più risoluzioni per la selezione. In base all'analisi dei dati acquisiti, il primo segmento riprodotto ha una risoluzione di 640, il secondo a 8 segmenti dopo la risoluzione di 480 e quindi viene commutato a una risoluzione di 640.
formato audio
Guardando verso il basso c'è l'indice dell'audio corrispondente
# EXT-X-MEDIA: TYPE = AUDIO, GROUP-ID = "program_audio", LANGUAGE = "eng", NAME = "Alternate Audio", AUTOSELECT = YES, DEFAULT = YES, URI = "audio1 / audio1.m3u8" Copia Codice
# EXT-X-MEDIA è apparso sopra, ma non ha menzionato l'elenco per più lingue.
TYPE = AUDIO, questa volta il tipo è audio.
GROUP-ID è l'ID del gruppo, corrispondente al contenuto AUDIO in EXT-X-STREAM-INF.
URI = audio1 / audio1.m3u8 corrisponde al percorso audio.
Fonti alternative di diversi formati di codifica
Nel file M3U8 principale, possiamo anche vedere una sorgente video con risoluzione 640, che non è la stessa della risoluzione 640 sopra. Il suo contenuto è così:
#EXT-X-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,VIDEO-RANGE=SDR,CODECS="hvc1.2.4.H150.B0,mp4a.40.2",RESOLUTION=640x360,FRAME-RATE=29.970 ,AUDIO="program_audio_0",SUBTITLES="subsC"
0640c / prog_index.m3u8
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=1922391,AVERAGE-BANDWIDTH=1276855,CODECS="hvc1.2.4.H150.B0",RESOLUTION=640x360,URI="0640c/iframe_index.m3u8"
# EXT-X-MEDIA: TYPE = AUDIO, GROUP-ID = "program_audio_0", LANGUAGE = "eng", NAME = "Alternate Audio", AUTOSELECT = YES, DEFAULT = YES, URI = "audioc / prog_index.m3u8" Copia Codice
Il formato di codifica CODECS è hvc1.2.4.H150.B0, mp4a.40.2, il formato di codifica audio non è cambiato, ma è cambiato il formato di codifica video. hvc1 è uno dei formati di codifica HEVC (H265). È un formato di codifica video di nuova generazione lanciato da Apple. A causa di problemi di compatibilità, molti client non possono analizzare questo formato, quindi non è molto popolare. Vengono visualizzate sorgenti video di questo formato Dovrebbe essere un backup qui. Confrontando due contenuti con la stessa risoluzione, è possibile riscontrare che il bit rate del formato hvc1 è maggiore di quello del formato avc1, il che mostra che il contenuto di hvc1 è maggiore e il rapporto di compressione di avc1 è maggiore a parità di risoluzione.
In corrispondenza della sorgente video in formato hvc1, sono cambiati anche il raggruppamento dei contenuti dei sottotitoli e il raggruppamento dei contenuti audio, motivo per cui i sottotitoli sopra hanno due copie della stessa lingua e corrispondono alle sorgenti video nei formati avc1 e hvc1.
Questa è la lista principale di M3U8. L'audio e il video di questo contenuto vengono elaborati separatamente, ma possono anche essere combinati.
File M3u8 contenente informazioni sui media
Prendi il file 0640.m3u8 come esempio
#EXTM3U
# EXT-X-VERSION: 4
# EXT-X-TARGETDURATION: 7
# EXT-X-MEDIA-SEQUENCE: 1
# EXT-X-PLAYLIST-TYPE: VOD
#EXTINF: 6.006,
0640_00001.ts
#EXTINF: 6.006,
0640_00002.ts
#EXTINF: 6.006,
0640_00003.ts
....
# EXT-X-ENDLIST Copia il codice
# EXTM3U e # EXT-X-VERSION sono rispettivamente l'intestazione del file M3U e il numero di versione compatibile. Questo formato è una versione precedente, quindi il numero di versione è inferiore al file principale.
EXT-X-TARGETDURATION rappresenta la durata massima di ciascun segmento di riproduzione, 7 rappresenta 7 secondi ei segmenti in questa directory non possono superare i 7 secondi.
EXT-X-MEDIA-SEQUENCE rappresenta il numero di sequenza del primo segmento della playlist e 1, rappresenta che il segmento di riproduzione inizia da 1.
#EXTINF rappresenta la durata del segmento, 6.006 significa che il segmento corrente è 6.006s. Le informazioni sulla durata totale del video si ottengono accumulando questo valore.
0640_00001.ts è il percorso relativo della clip. Il file ts rappresenta un pezzo di video o audio e può essere in ts, mp4, aac e altri formati. Perché è stato specificato di aprire da 1
|
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