
Доброе утро, я создал... Я тестирую потоковую передачу 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 (как отмечено в другом месте), которая до сих пор не решена даже на сегодняшний день.
Лучшими вариантами для вас являются:
- Отредактируйте
.m3u8
файл и удалите строки EXT-X (но сохраните строки EXTINF). После этого вы сможете воспроизвести плейлист с помощью VLC или - Используйте другое приложение для воспроизведения
.m3u8
файла в том виде, в котором он есть.ffplay
Например, такое, которое его воспроизведет.
решение3
На всякий случай, если кому-то еще нужна какая-то информация по этому поводу.
Проверьте заголовок "content-type" вашего фрагмента mpegts. Он должен быть "video/mp2t".