
Bom dia, criei estou testando streaming HLS e criei uma playlist simples e segmento de um vídeo usando o comando ffmpeg -i C:\Users\funny\Desktop\uscita\out.mp4 -vcodec libx264 -g 24 -hls_time 10 -hls_playlist_type vod -vsync 1 index1.m3u8
.
O vídeo de origem abre sem problemas e o ffmpeg o codifica sem problemas no index1, que é o arquivo da lista de reprodução, e index10 index11 index12 sendo o 3 .ts (o vídeo tem apenas 26 segundos de duração). Instalei o VLC porque sei que ele abre arquivos da playlist, então pude testar meu .m3u8, mas quando abro com o VLC, o programa começa a rodar, mas não reproduz nada. Para referência aqui está a lista de reprodução também:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:12
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:11.500000,
index10.ts
#EXTINF:12.000000,
index11.ts
#EXTINF:2.500000,
index12.ts
#EXT-X-ENDLIST
Responder1
dr: Isso parece um bug do VLC. Use um player diferente.
Posso reproduzir este problema com um conjunto de arquivos de vídeo HLS, criados conforme ffmpeg
indicado na pergunta. Isso é com ffmpeg 4.0.2 e VLC 3.0.4
Sintomas:
Abrindo o .m3u8
arquivo com VLC, recebo a mensagem de erro:
erro de demux adaptativo: Falha ao criar demuxer (nil) TLS
Os logs de depuração indicam que o VLC realmente lê a lista de reprodução com êxito e encontra os arquivos TS, mas algo dá errado.
No entanto, posso reproduzir os arquivos com êxito com ambos ffplay
eMPlayer, então parece que a falha é do VLC.
O bugtracker do VLC possui alguns relatórios de bugs semelhantes, mas a maioria é bastante antiga e supostamente corrigida. Consegui reproduzir um stream HLS por HTTP, abrindo o URL do .m3u8
arquivo, então o bug parece se aplicar apenas a streams HLS baixados. Talvez a reprodução de .m3u8
arquivos baixados localmente não seja uma alta prioridade para o VLC, então use um player diferente.
Responder2
O VLC parece não conseguir processar um arquivo m3u8 com as diretivas 'EXT-X' nele. Presumivelmente, este é um bug do VLC (conforme observado em outro lugar) que ainda não foi resolvido até hoje.
Suas melhores escolhas são:
- Edite o
.m3u8
arquivo e exclua as linhas EXT-X (mas mantenha essas linhas EXTINF). Você poderá então reproduzir a lista de reprodução com o VLC ou - Use um aplicativo diferente para reproduzir o
.m3u8
arquivo como está.ffplay
é aquele que vai jogar, por exemplo.
Responder3
Caso alguém ainda precise de alguma informação sobre isso.
Verifique o cabeçalho "content-type" do seu bloco mpegts. Deveria ser "vídeo/mp2t".