FMUSER ¡Transmite video y audio sin cables más fácilmente!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikáans
sq.fmuser.org -> albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenio
az.fmuser.org -> azerbaiyano
eu.fmuser.org -> Vasco
be.fmuser.org -> bielorruso
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chino (simplificado)
zh-TW.fmuser.org -> Chino (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estonio
tl.fmuser.org -> filipino
fi.fmuser.org -> finlandés
fr.fmuser.org -> Francés
gl.fmuser.org -> gallego
ka.fmuser.org -> georgiano
de.fmuser.org -> alemán
el.fmuser.org -> Griego
ht.fmuser.org -> criollo haitiano
iw.fmuser.org -> hebreo
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandés
id.fmuser.org -> indonesio
ga.fmuser.org -> irlandés
it.fmuser.org -> Italiano
ja.fmuser.org -> japonés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituania
mk.fmuser.org -> macedonio
ms.fmuser.org -> malayo
mt.fmuser.org -> maltés
no.fmuser.org -> Noruega
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> portugués
ro.fmuser.org -> Rumano
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> eslovaco
sl.fmuser.org -> Eslovenia
es.fmuser.org -> español
sw.fmuser.org -> Swahili
sv.fmuser.org -> sueco
th.fmuser.org -> Tailandés
tr.fmuser.org -> turco
uk.fmuser.org -> ucraniano
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
fondo
MP4 es nuestro formato de video común y, a menudo, cuando reproducimos videos de servidor, es directamente la fuente de video MP4 solicitada. Pero, de hecho, esto no es bueno. El archivo de encabezado MP4 [ftyp + moov] es grande, y la reproducción inicial necesita descargar el archivo de encabezado completo y analizarlo, y luego descargar una cierta longitud de videoclip reproducible para reproducir. Además, a medida que aumenta el tamaño del video, el archivo de encabezado seguirá creciendo y el tiempo de reproducción inicial será más largo. Ante esta situación, se necesita un método que pueda acelerar el análisis inicial del video. HLS es la solución propuesta por Apple para solucionar este problema.
HLS
HLS es la abreviatura de HTTP Live Streaming. Es un protocolo de transmisión de red de medios de transmisión basado en HTTP propuesto por Apple. Puede admitir en vivo y bajo demanda al mismo tiempo, así como multi-definición, audio y video de doble pista, subtítulos y otras funciones. Su principio es dividir un video completo en múltiples videos pequeños, y la reproducción completa se forma empalmando estos segmentos.
HLS se usa ampliamente en terminales móviles. Los clientes actuales que admiten el protocolo HLS incluyen:
iOS 3.0 y superior, AVPlayer es compatible de forma nativa con HLS
Android 3.0 y por encima
Adobe Flash Player 11.0 y superior
Su principio general es este:
1. Recopile audio y video
2. Codifique audio y video en el servidor
3. Después de codificar, entréguelo al Segmentador de flujo en forma de flujo de transporte MPEG-2
4. La cortadora crea un archivo índice y una lista de reproducción ts, el archivo índice se usa para indicar la posición del audio y video, y ts es un clip multimedia real.
5. Coloque los recursos del paso anterior en el servidor HTTP.
6. El cliente solicita el archivo de índice para su reproducción, y el contenido de reproducción se puede encontrar a través del archivo de índice.
M3U8
Un paso clave para realizar HLS es el cuarto paso anterior, a saber, la organización de los archivos de índice y las listas de reproducción de ts. Aquí se utiliza el formato M3U8. M3U8 es la versión Unicode de M3U, 8 significa que se utiliza codificación UTF-8 y tanto M3U como M3U8 son formatos de archivo para listas multimedia.
Descripción de formato M3U8
A veces, es posible que necesitemos modificar manualmente el contenido del archivo M3U8 para realizar pruebas o en algunos casos especiales, por lo que debemos tener cierta comprensión de su formato. La definición de este formato está escrita en el documento RFC 8216. Las siguientes son algunas notas:
Los archivos M3U8 deben estar codificados en UTF-8 y no pueden usar el orden de bytes de la marca de orden de bytes (BOM) y no pueden contener caracteres de control utf-8 (U + 0000 ~ U_001F y U + 007F ~ u + 009F)
Cada línea del contenido del archivo M3U8 es una línea en blanco, un URI o una cadena que comienza con #, y no pueden aparecer caracteres en blanco.
Las etiquetas integradas son todas cadenas que comienzan con #EXT y distinguen entre mayúsculas y minúsculas.
URI es la ruta del contenido, que puede ser una ruta relativa o una ruta absoluta
Archivo de lista maestro M3U8
El archivo de índice principal M3U8 se usa generalmente para especificar múltiples fuentes de índice. Primero analicemos el contenido del archivo principal m3u8 hls_vod_mvp.m3u8, su encabezado es así
Formato de encabezado
#EXTM3U
# EXT-X-VERSION: 7
# EXT-X-INDEPENDENT-SEGMENTSCódigo de copia
# EXTM3U indica que el archivo está en formato M3U, y todos los archivos con formato M3U deben colocar el contenido en la primera línea.
# EXT-X-VERSIOn indica la versión compatible de la lista de reproducción, que actualmente es 7.
# EXT-X-INDEPENDENT-SEGMENTS Esta etiqueta indica que todas las muestras de medios en un segmento de medios se pueden decodificar de forma independiente sin depender de la información de otros segmentos de medios.
Formato de subtítulo
El contenido a continuación son algunos subtítulos, el contenido de los subtítulos no es necesario.
# 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 "Copiar código
# EXT-X-MEDIA se utiliza para especificar recursos de listas de medios multilingües del mismo contenido.
TYPE es el tipo de recurso y los contenidos opcionales son: AUDIO, VIDEO, SUBTÍTULOS, TÍTULOS CERRADOS.
El contenido anterior establece TYPE = SUBTITLES, que es el tipo de subtítulo.
GROUP-ID es el grupo al que pertenece la traducción multilingüe y es un parámetro obligatorio
NAME es la información de descripción legible del flujo de traducción, y este valor corresponde al displayName de AVMediaSelectionOption.
DEFAULT, AUTOSELECT, FORCED son tres valores BOOL correspondientes a si el flujo de traducción está seleccionado por defecto si falta la información necesaria. La secuencia de reproducción se reproduce cuando el usuario no muestra la configuración. FORZADO solo es válido para el tipo de subtítulo y se utiliza para marcar la selección automática actual del flujo de traducción. .
IDIOMA se utiliza para especificar el tipo de idioma, que se establece de acuerdo con el [código de idioma ISO 639] (https://www.w3.org/WAI/ER/WD-AERT/iso639.htm "Código de idioma ISO 639"). Cuando el reproductor predeterminado del sistema selecciona subtítulos, el nombre de la lista de subtítulos que se muestra se establece de acuerdo con este valor.
El URI es la información de ubicación del recurso, donde corresponde a un archivo M3U8 subtitulado. subtitles / eng / prog_index.m3u8 es una ruta relativa,
A través de la información anterior, podemos analizar el significado del contenido anterior como: El video actual admite tres subtítulos: inglés, japonés y chino. Pero cada idioma tiene dos mensajes EXT-X-MEDIA. La diferencia entre ellos es la agrupación, uno se agrupa en subs y el otro se agrupa en subsC. ¿Por qué hay dos grupos? Hablaré de esto más tarde.
Formato de video
Mire hacia abajo nuevamente, para el índice del contenido del 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: este atributo especifica una fuente de respaldo, es decir, la ruta de reproducción del video y cierta información del video. La siguiente es la configuración del contenido correspondiente: ANCHO DE BANDA es la velocidad de bits máxima, 827299 es 827299bit / s, que es la hora pico más alta Consume 101KB de tráfico por segundo.
ANCHO DE BANDA PROMEDIO es la tasa de bits promedio, 747464
CODECS es información de codificación, avc1.64001f, mp4a.40.2, avc representa el formato de codificación h264, el siguiente 64001f es el parámetro de codificación representado por hexadecimal, 64, 00, 1f respectivamente representan tres valores de parámetro diferentes. mp4a es un formato de codificación de audio y el siguiente 40.2 representa parámetros de codificación de audio.
RESOLUCIÓN es la resolución de video. La resolución actual de la fuente de video es 640x360.
FRAME-RATE es la frecuencia máxima de fotogramas, 29.970 representa la frecuencia máxima de fotogramas de la reproducción actual es 29.970 fotogramas por segundo.
AUDIO es el grupo de audio y program_audio es el nombre del grupo de audio correspondiente.
SUBTITLES indica el grupo de subtítulos correspondiente y subs es el nombre del grupo de subtítulos correspondiente. La información de subtítulos anterior tiene un ID de GRUPO, y este valor le corresponde.
URI es la ruta del contenido, 0640 / 0640.m3u8 corresponde a la ruta del archivo m3u8 de la fuente de video. Esto se puede ver en la información de captura de paquetes.
Debajo de EXT-X-STREAM-INF está EXT-XI-FRAME-STREAM-INF, que representa el fotograma I (fotograma clave) del recurso multimedia contenido en el archivo de lista de reproducción. Debido a que el cuadro I es solo una imagen, no contiene contenido de audio y los parámetros restantes son consistentes con el formato de contenido de video.
Después de eso, hay fuentes de video correspondientes a diferentes resoluciones, 1920x1080, 1280x720, 960x540, 480x270. Debido a que HLS cambiará automáticamente la resolución según la situación de la red, generalmente se preparan varias resoluciones para su selección. Según el análisis de los datos capturados, el primer segmento reproducido tiene una resolución de 640, el segundo a 8 segmentos posteriores tienen una resolución de 480, y luego se cambia a una resolución de 640.
formato de audio
Mirar hacia abajo es el índice del audio correspondiente.
# EXT-X-MEDIA: TYPE = AUDIO, GROUP-ID = "program_audio", LANGUAGE = "eng", NAME = "Audio alternativo", AUTOSELECT = YES, DEFAULT = YES, URI = "audio1 / audio1.m3u8" Copiar Código
# EXT-X-MEDIA apareció arriba, pero no mencionó la lista para varios idiomas.
TYPE = AUDIO, esta vez el tipo es audio.
GROUP-ID es el ID de grupo, correspondiente al contenido de AUDIO en EXT-X-STREAM-INF.
URI = audio1 / audio1.m3u8 corresponde a la ruta de audio.
Fuentes alternativas de diferentes formatos de codificación
En el archivo principal M3U8, también podemos ver una fuente de video con una resolución de 640, que no es la misma que la resolución anterior de 640. Su contenido es así:
#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 = "Audio alternativo", AUTOSELECT = YES, DEFAULT = YES, URI = "audioc / prog_index.m3u8" Copiar Código
El formato de codificación CODECS es hvc1.2.4.H150.B0, mp4a.40.2, el formato de codificación de audio no ha cambiado, pero el formato de codificación de video ha cambiado. hvc1 es uno de los formatos de codificación HEVC (H265). Es un formato de codificación de video de nueva generación lanzado por Apple. Debido a problemas de compatibilidad, muchos clientes no pueden analizar este formato, por lo que no es muy popular. Aparecen fuentes de video de este formato. Debería haber una copia de seguridad aquí. Comparando dos contenidos de la misma resolución, se puede encontrar que la tasa de bits del formato hvc1 es mayor que la del formato avc1, lo que muestra que el contenido de hvc1 es mayor y la relación de compresión de avc1 es mayor bajo la misma resolución.
Correspondiente a la fuente de video en formato hvc1, también ha cambiado su agrupación de contenido de subtítulos y la agrupación de contenido de audio, por lo que los subtítulos anteriores tienen dos copias del mismo idioma, y corresponden a las fuentes de video en formatos avc1 y hvc1.
Esta es la lista principal de M3U8. El audio y el video de este contenido se procesan por separado, pero también se pueden combinar.
Archivo M3u8 que contiene información multimedia
Tome el archivo 0640.m3u8 como ejemplo
#EXTM3U
# EXT-X-VERSION: 4
# EXT-X-TARGETDURATION: 7
# SECUENCIA-EXT-X-MEDIA: 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-ENDLISTCopy code
# EXTM3U y # EXT-X-VERSION son el encabezado del archivo M3U y el número de versión compatible, respectivamente. Este formato es una versión anterior, por lo que el número de versión es menor que el del archivo principal.
EXT-X-TARGETDURATION representa la duración máxima de cada segmento de reproducción, 7 representa 7 segundos y los segmentos de este directorio no pueden superar los 7 segundos.
EXT-X-MEDIA-SEQUENCE representa el número de secuencia del primer segmento de la lista de reproducción, y 1, representa que el segmento de reproducción comienza desde 1.
#EXTINF representa la duración del segmento, 6.006 significa que el segmento actual es 6.006s. La información de duración total del video se obtiene acumulando este valor.
0640_00001.ts es la ruta relativa del clip. El archivo ts representa una pieza de video o audio, y puede estar en ts, mp4, aac y otros formatos. Porque se ha especificado para abrir desde 1
|
Ingrese el correo electrónico para recibir una sorpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikáans
sq.fmuser.org -> albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenio
az.fmuser.org -> azerbaiyano
eu.fmuser.org -> Vasco
be.fmuser.org -> bielorruso
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chino (simplificado)
zh-TW.fmuser.org -> Chino (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estonio
tl.fmuser.org -> filipino
fi.fmuser.org -> finlandés
fr.fmuser.org -> Francés
gl.fmuser.org -> gallego
ka.fmuser.org -> georgiano
de.fmuser.org -> alemán
el.fmuser.org -> Griego
ht.fmuser.org -> criollo haitiano
iw.fmuser.org -> hebreo
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandés
id.fmuser.org -> indonesio
ga.fmuser.org -> irlandés
it.fmuser.org -> Italiano
ja.fmuser.org -> japonés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituania
mk.fmuser.org -> macedonio
ms.fmuser.org -> malayo
mt.fmuser.org -> maltés
no.fmuser.org -> Noruega
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> portugués
ro.fmuser.org -> Rumano
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> eslovaco
sl.fmuser.org -> Eslovenia
es.fmuser.org -> español
sw.fmuser.org -> Swahili
sv.fmuser.org -> sueco
th.fmuser.org -> Tailandés
tr.fmuser.org -> turco
uk.fmuser.org -> ucraniano
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
FMUSER ¡Transmite video y audio sin cables más fácilmente!
Contacto
Dirección:
Habitación No.305 Edificio HuiLan No.273 Huanpu Road Guangzhou China 510620
Categorías
Newsletter