M3U8 trava após alguns segundos

M3U8 trava após alguns segundos

Tenho um pequeno clipe experimental abaixo:

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

O problema que estou enfrentando é que depois de alguns segundos o vídeo trava.

Eu apreciaria se alguém pudesse me ajudar

  1. Identifique o problema
  2. Qualquer correção
  3. Qualquer ferramenta para detectar ou consertar

Responder1

Eu não tenho problemas. Este m3u8 está apontando para os últimos segundos do que foi uma transmissão ao 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

O HLS divide o vídeo em segmentos. Esta lista de reprodução começa no segmento número 54675 e termina em 54677. #EXT-X-ENDLISTdiz ao jogador para parar de jogar, pois estamos sem segmentos.

Enquanto esta transmissão estava ao vivo, o m3u8 estaria sendo atualizado.

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

Responder2

O .m3u8arquivo não é umvideoclipe; é umtipo de manifestoarquivo que é usado no streaming de vídeo HTTP. Ele especifica o URL de MPEG2-TSsegmentos de vídeo codificados que geralmente têm cerca de 10 minutos de duração.

  1. O servidor envia este .m3u8arquivo para o cliente
  2. Em seguida, o cliente extrai o URL para o .tssegmento de vídeo e exibe o segmento de vídeo.

Em condições normais de transmissão ao vivo, um novo .m3u8arquivo é enviado do servidor para o cliente a cada 10 minutos para que ele saiba a URL do próximo segmento de vídeo de 10 minutos. Quando não há mais segmentos, ou o evento de transmissão ao vivo termina, o servidor envia um .m3u8arquivo com a #EXT-X-ENDLISTdiretiva, que informa ao cliente que não haverá mais segmentos, conforme szatmary explicado acima.

Assim, seu vídeo "trava" conforme você descreveu, pois não há mais segmentos disponíveis.

Consertar:

Não há necessidade de correção porque o servidor não forneceu mais segmentos.

Recursos:

A melhor ferramenta para detectar isso é um editor comovi(vim) que permitirá que você veja as diretivas no .m3u8arquivo para que você possa verificar a #EXT-X-ENDLISTdiretiva. Ou apenas use catou tailpara mostrar o conteúdo do .m3u8arquivo.

O link para o rascunho da IETF sobre HTTP Live Streaming fornecido por szatmary é muito informativo e explica todas as diretivas usadas no .m3u8arquivo.

Como a Apple desenvolveu e definiu este protocolo, esta é a melhor fonte de informações: https://developer.apple.com/streaming/

Recursos adicionais podem ser encontrados aqui: http://en.wikipedia.org/wiki/HTTP_Live_Streaming

informação relacionada