Файл VLC и m3u8

Файл VLC и m3u8

Доброе утро, я создал... Я тестирую потоковую передачу HLS и создал простой плейлист и фрагмент видео с помощью команды ffmpeg -i C:\Users\funny\Desktop\uscita\out.mp4 -vcodec libx264 -g 24 -hls_time 10 -hls_playlist_type vod -vsync 1 index1.m3u8.

Исходное видео открывается без проблем, и ffmpeg без проблем кодирует его в index1, то есть файл плейлиста, и index10 index11 index12, который является 3 .ts (видео длится всего 26 секунд). Я установил VLC, потому что знаю, что он открывает файлы плейлистов, поэтому я мог проверить свой .m3u8, но когда я открываю его с помощью VLC, программа запускается, но ничего не воспроизводит. Для справки вот и плейлист:

#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

решение1

tl;dr: Похоже, это баг с VLC. Используйте другой плеер.

Я могу воспроизвести эту проблему с набором видеофайлов HLS, созданных, ffmpegкак указано в вопросе. То есть с ffmpeg 4.0.2 и VLC 3.0.4

Симптомы:

Открываю .m3u8файл с помощью VLC, получаю сообщение об ошибке:

Ошибка адаптивного демультиплексора: не удалось создать демультиплексор (nil) TLS

Журналы отладки показывают, что VLC на самом деле успешно считывает плейлист и находит файлы TS, но затем что-то идет не так.

Однако я могу успешно воспроизводить файлы ffplayи с помощьюMPlayer, так что, похоже, проблема в VLC.

На багтрекере VLC есть несколько похожих отчетов об ошибках, но большинство из них довольно старые и, как предполагается, исправлены. Мне удалось воспроизвести поток HLS по HTTP, открыв URL файла .m3u8, так что ошибка, похоже, касается только загруженных потоков HLS. Возможно, воспроизведение локально загруженных .m3u8файлов не является приоритетом для VLC, поэтому просто используйте другой проигрыватель.

решение2

VLC, похоже, не может обработать файл m3u8 с этими директивами 'EXT-X' в нем. Предположительно, это ошибка VLC (как отмечено в другом месте), которая до сих пор не решена даже на сегодняшний день.

Лучшими вариантами для вас являются:

  1. Отредактируйте .m3u8файл и удалите строки EXT-X (но сохраните строки EXTINF). После этого вы сможете воспроизвести плейлист с помощью VLC или
  2. Используйте другое приложение для воспроизведения .m3u8файла в том виде, в котором он есть. ffplayНапример, такое, которое его воспроизведет.

решение3

На всякий случай, если кому-то еще нужна какая-то информация по этому поводу.

Проверьте заголовок "content-type" вашего фрагмента mpegts. Он должен быть "video/mp2t".

Связанный контент