ffmpeg HLS плейлист не запускается с самого начала
Я пытаюсь взять 5-минутный видеофайл и создать однофайловый список воспроизведения HTTP Live Stream и .ts
файл. Формат файла списка воспроизведения может поддерживать байтовые диапазоны вместо отдельных файлов с iOS 5, что является хорошей целью для моих случаев использования. Но когда я запускаю ffmpeg
команда, первая запись в результате .m3u8
список воспроизведения не начинается с (или даже рядом) байта 0.
Например:
ffmpeg -i input -hls_flags single_file out.m3u8
Создает плейлист примерно так:
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:11
#EXT-X-MEDIA-SEQUENCE:63
#EXTINF:1.376367,
#EXT-X-BYTERANGE:568324@63107840
out.ts
#EXTINF:1.334667,
#EXT-X-BYTERANGE:235564@63676164
out.ts
#EXTINF:1.918589,
#EXT-X-BYTERANGE:343288@63911728
out.ts
#EXTINF:10.427078,
#EXT-X-BYTERANGE:3311996@64255016
out.ts
#EXTINF:5.672333,
#EXT-X-BYTERANGE:52828@67567012
out.ts
#EXT-X-ENDLIST
Обратите внимание, что первый EXT-X-BYTERANGE
запись не @0
- это около 63 МБ в 68 МБ .ts
файл. Действительно, при загрузке списка воспроизведения в <video>
При добавлении тега и открытии HTML-кода с помощью Safari воспроизведение видео начинается примерно через 20 секунд с конца входного видео, а не с 0, и нет способа удалить его раньше.
Почему имеет ffmpeg
создал плейлист, который не включает все видео? Когда я смотрю .ts
файл создается вместе с плейлистом, весь видеоконтент присутствует.
Я вижу это на недавнем ffmpeg
статические сборки под Linux, а также версия Homebrew ffmpeg
2.7.1 под OS X.
1 ответ
После прочтения документации HLS я наконец заметил эту опцию:
hls_list_size
size
Установите максимальное количество записей в списке воспроизведения. Если установлено значение 0, файл списка будет содержать все сегменты. Значение по умолчанию 5.
Конечно же, в моем первоначальном вопросе есть 5 EXT-X-BYTERANGE
записи с конца видео, в соответствии с заявленным значением по умолчанию. настройка hls_list_size
в 0
как указано, фактически обеспечивает начало видео в начале и включает все ожидаемые диапазоны байтов.