M3U8 se cuelga después de unos segundos

M3U8 se cuelga después de unos segundos

Tengo un pequeño clip experimental a continuación:

http://d3fnzeq4kk32oq.cloudfront.net/802/test_1.m3u8

El problema al que me enfrento es que después de unos segundos, el vídeo se cuelga.

Agradecería si alguien pudiera ayudarme

  1. Identificar el problema
  2. Cualquier solución
  3. Cualquier herramienta para detectarlo o solucionarlo.

Respuesta1

Así que no hay problemas. Este m3u8 apunta a los últimos segundos de lo que fue una transmisión en vivo.

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:54675
#EXTINF:10.0,
http://d3fnzeq4kk32oq.cloudfront.net/802/chunk-20131128_0122_54675.ts
#EXTINF:2.188,
http://d3fnzeq4kk32oq.cloudfront.net/802/chunk-20131128_0123_54676.ts
#EXTINF:10.0,
http://d3fnzeq4kk32oq.cloudfront.net/802/chunk-20131128_0123_54677.ts
#EXT-X-ENDLIST

HLS divide el vídeo en segmentos. Esta lista de reproducción comienza en el segmento número 54675 y termina en 54677. #EXT-X-ENDLISTLe dice al reproductor que deje de reproducir, ya que nos hemos quedado sin segmentos.

Mientras esta transmisión estaba en vivo, el m3u8 se habría estado actualizando.

https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-12

Respuesta2

El .m3u8archivo no es unclip de vídeo; es untipo de manifiestoarchivo que se utiliza en la transmisión de video HTTP. Especifica la URL de MPEG2-TSsegmentos de vídeo codificados que suelen tener una duración de unos 10 minutos.

  1. El servidor envía este .m3u8archivo al cliente.
  2. Luego, el cliente extrae la URL del .tssegmento de video y luego muestra el segmento de video.

En condiciones normales de transmisión en vivo, .m3u8se envía un nuevo archivo desde el servidor al cliente cada 10 minutos para que sepa la URL del siguiente segmento de video de 10 minutos. Cuando no hay más segmentos, o el evento de transmisión en vivo ha terminado, el servidor envía un .m3u8archivo con la #EXT-X-ENDLISTdirectiva, que le dice al cliente que no habrá más segmentos, como szatmary explicó anteriormente.

Por lo tanto, su video se "cuelga" como lo describió, ya que no hay más segmentos disponibles.

Arreglar:

No es necesaria ninguna solución porque el servidor no ha proporcionado más segmentos.

Recursos:

La mejor herramienta para detectar esto es un editor comovi(vim) que le permitirá ver las directivas en el .m3u8archivo para que pueda verificarlas #EXT-X-ENDLIST. O simplemente use cato tailpara mostrar el contenido del .m3u8archivo.

El enlace al borrador del IETF sobre HTTP Live Streaming que proporcionó szatmary es muy informativo y explica todas las directivas que se utilizan en el .m3u8archivo.

Dado que Apple desarrolló y definió este protocolo, esta es la mejor fuente de información: https://developer.apple.com/streaming/

Se pueden encontrar recursos adicionales aquí: http://en.wikipedia.org/wiki/HTTP_Live_Streaming

información relacionada