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
HLS y Http Live Streaming son protocolos para la transmisión en tiempo real definidos por Apple. HLS se implementa según el protocolo HTTP. El contenido de la transmisión incluye dos partes, una es el archivo de descripción M3U8 y la otra es el archivo multimedia TS.
1. Archivo M3U8
El archivo multimedia se describe en texto, que se compone de una serie de etiquetas.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: La primera línea de cada archivo M3U8 debe ser esta etiqueta.
# EXT-X-TARGETDURATION: especifique la duración máxima del segmento de medios (segundos). El tiempo especificado en #EXTINF debe ser menor o igual a este valor máximo. Este valor solo puede aparecer una vez.
#EXTINF: describe la longitud de un solo archivo multimedia. A continuación, se muestran los archivos multimedia, como ./0.ts
Se puede distribuir por HTTP en dispositivos iOS y mac. El estándar de la lista de reproducción es el archivo m3u8 ampliado por m3u, y el archivo multimedia es un archivo MPEG2-TS o AAC (solo audio).
Hay dos escenarios de aplicación para archivos m3u8:
Flujo de adaptación de múltiples velocidades,
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 1, ANCHO DE BANDA = 1280000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, ANCHO DE BANDA = 2560000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, ANCHO DE BANDA = 7680000
# EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 65000, CODECS = "mp4a.40.5"
http://example.com/audio-only.m3u8
Flujo de adaptación de tasa única
#EXTM3U
# EXT-X-TARGETDURATION: 5220
#EXTINF: 5220,
http://media.example.com/entire.ts
# EXT-X-ENDLIST
La Organización Internacional de Estándares define este documento rfc:
http://tools.ietf.org/html/draft-pantos-http-live-streaming-06
El archivo m3u8 es una extensión del archivo m3u. Las palabras clave extendidas se definen en el rfc:
entre ellos:
# EXT-X-TARGETDURATION
Defina la duración máxima de cada TS.
# SECUENCIA-EXT-X-MEDIA
Defina el número de serie del primer archivo en el archivo m3u8 actual. Cada archivo ts tiene un número de serie fijo y único en el archivo m3u8. El número de serie se utiliza para cambiar la tasa de código para la alineación durante MBR.
# EXT-X-KEY
Defina el método de cifrado y la URL del archivo de clave, que se utiliza para obtener el archivo de clave de 16 bytes para decodificar el archivo ts.
Atributos:
MÉTODO
Enlance
# EXT-X-PROGRAMA-FECHA-HORA
Tiempo absoluto del primer archivo
# EXT-X-ALLOW-CACHE
Ya sea para permitir caché.
# EXT-X-ENDLIST
Indica el final del archivo m3u8. Live m3u8 no tiene esta etiqueta.
# EXT-X-STREAM-INF
Atributos:
BANDWIDTH especifica la tasa de bits
ID de PROGRAMA ID único
CODECS especifica el tipo de codificación de la secuencia
# EXT-X-DISCONTINUIDAD
Cuando se encuentra la etiqueta, los siguientes atributos han cambiado:
formato de archivo
número y tipo de pistas
parámetros de codificación
secuencia de codificación
secuencia de marca de tiempo
# EXT-X-VERSION Este atributo puede usarse o no, no puede tener ninguno
M3U8 se divide en M3U8 de nivel superior y M3U8 de segundo nivel. El M3U8 de nivel superior se utiliza principalmente para la adaptación de múltiples velocidades. El M3U8 de segundo nivel es el archivo de corte real.
De forma predeterminada, el cliente primero seleccionará la solicitud con la tasa de bits más alta. Si encuentra que no se puede alcanzar la tasa de bits, solicitará una transmisión con una tasa de bits baja
Un archivo M3U8 de nivel superior en uso real es el siguiente:
#EXTM3U
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, ANCHO DE BANDA = 358400
11.m3u8
# EXT-X-STREAM-INF: PROGRAM-ID = 201273221265, ANCHO DE BANDA = 972800
22.m3u8
El archivo M3U8 de nivel superior anterior define dos archivos de segundo nivel, 11.m3u8 y 22.m3u8, y el cliente seleccionará uno de ellos para obtener su contenido.
El contenido del archivo secundario M3U8 es el siguiente:
#EXTM3U
# EXT-X-VERSION: 1
# EXT-X-TARGETDURATION: 10
# SECUENCIA-EXT-X-MEDIA: 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
Después de que el cliente obtenga el archivo M3U8 secundario anterior, continuará solicitando el archivo dentro y luego se podrá reproducir.
Lo anterior se trata de la situación bajo demanda y la situación de la transmisión en vivo, habrá atributos en el archivo M3U8 para indicar que está en vivo y el cliente solicitará periódicamente nuevos archivos M3U8.
// Cuando HLS realiza una transmisión en vivo y bajo demanda, la diferencia del archivo M3U8
1. Descripción del problema
Recientemente hice una prueba de reproducción de cortes transcodificados, usando HLS (HTTP Live Streaming) para hacer la transmisión en vivo. Cada tiempo de segmentación de TS es de 10 segundos, y los siguientes archivos m3u8 en vivo se generan de acuerdo con los archivos de segmentación de TS
Copiar código
#EXTM3U
# SECUENCIA-EXT-X-MEDIA: 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
Copiar código
Guarde el archivo m3u8 anterior como live.m3u8, colóquelo en el directorio de documentos de Apache y reproduzca la siguiente URL con VLC:
http://localhost/live.m3u8
La prueba encontró que el primer archivo en comenzar a reproducir no era 1.ts. Después de varias pruebas, se encontró que:
Siempre que haya más de tres archivos en la lista, los últimos tres archivos de la lista siempre se reproducen
2. Resolución de problemas
Es muy triste que después de buscar en Internet, no encontré ninguna información efectiva. Un amigo se encontró con la misma situación, ¿compartió su experiencia después de resolverla?
Después de consultar con un colega, el colega dijo que es posible porque la lista de archivos m3u8 en vivo debe actualizarse en tiempo real. Si hacemos una prueba, podemos agregar # EXT-X-ENDLIST al final primero. Este método ha sido probado Funciona, pero ya no es el modo m3u8 en vivo
Después de buscar en Internet nuevamente, confirmé que finalmente encontré una descripción de m3u8 en vivo
Lista de reproducción en vivo (ventana deslizante)
Para las sesiones en vivo, el archivo de índice se actualiza eliminando los URI de medios del archivo a medida que se crean y se ponen a disposición nuevos archivos de medios.
Importante: La etiqueta EXT-X-ENDLIST no está presente en la lista de reproducción en vivo, lo que indica que se agregarán nuevos archivos multimedia al archivo de índice a medida que estén disponibles.
Consulte el Listado 3 para ver un ejemplo de una lista de reproducción en vivo como aparecería al comienzo de una sesión.
Listado 3 Lista de reproducción en vivo al comienzo de una sesión.
Copiar código
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERSION: 3
# SECUENCIA-EXT-X-MEDIA: 1
#EXTINF: 10,
archivoSequence1.ts
#EXTINF: 10,
archivoSequence2.ts
#EXTINF: 10,
archivoSequence3.ts
#EXTINF: 10,
archivoSequence4.ts
#EXTINF: 10,
archivoSequence5.ts
Copiar código
El valor de la etiqueta EXT-X-MEDIA-SEQUENCE DEBE incrementarse en 1 por cada URI de medios que se elimine del archivo de lista de reproducción. Los URI de medios deben eliminarse del archivo de lista de reproducción en el orden en que aparecen en la lista de reproducción. El archivo de índice actualizado presenta una ventana en movimiento en un flujo continuo. Este tipo de sesión es adecuado para transmisiones continuas.
Aquí está la misma lista de reproducción después de que se haya actualizado con nuevos URI de medios:
Listado 4 Lista de reproducción en vivo después de actualizar los URI de medios.
Copiar código
#EXTM3U
# EXT-X-TARGETDURATION: 10
# EXT-X-VERSION: 3
# SECUENCIA-EXT-X-MEDIA: 2
#EXTINF: 10,
archivoSequence2.ts
#EXTINF: 10,
archivoSequence3.ts
#EXTINF: 10,
archivoSequence4.ts
#EXTINF: 10,
archivoSequence5.ts
#EXTINF: 10,
archivoSequence6.ts
Copiar código
3.reglas de actualización live m3u8
La lista de archivos m3u8 en vivo debe actualizarse continuamente, actualice las reglas:
Eliminar el archivo superior (creo que reproducido) en una lista de reproducción de archivos
Actualice continuamente la etiqueta EXT-X-MEDIA-SEQUENCE, incrementándola en 1
4. Experimento
Escriba un pequeño programa para generar m3u8 en vivo para probar
Uso:
m3u8_gen.exe start_num list_count duración nombre de archivo.m3u8 [prefijo]
Ejemplo de uso:
m3u8_gen.exe 1 3 10 live.m3u8 hls /
Genere el archivo live.m3u8 como
Copiar código
#EXTM3U
# SECUENCIA-EXT-X-MEDIA: 1
# EXT-X-TARGETDURATION: 10
#EXTINF: 10
hls / 1.ts
#EXTINF: 10
hls / 2.ts
#EXTINF: 10
hls / 3.ts
Copiar código
Escriba un script BAT para actualizar el archivo live.m3u8 cada 10 segundos
Copiar código
@ Echo off
f
|
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