FFmpeg HLS muxer .ts формат имени файла
Возможно ли иметь .ts
файлы с именами по дате / времени (любой формат) вместо порядкового номера при использовании мультиплексора HLS? Если так, как это можно сделать?
ffmpeg -i - -hls-some-option-here test_stream.m3u8
test_stream_20141116174310.ts
test_stream_20141116174312.ts
test_stream_20141116174314.ts
test_stream_20141116174316.ts
2 ответа
Посмотрите сегментный мультиплексор, который обеспечивает более общую и гибкую реализацию сегментатора и может использоваться для выполнения сегментации HLS.
Сегмент muxer поддерживает расширение strftime с помощью -strftime 1
(по умолчанию отключено). Это позволяет именовать сегменты по времени создания.
От man ffmpeg-formats
:
strftime 1|0
Используйте функцию strftime, чтобы определить имя новых сегментов для записи. Если это выбрано, имя выходного сегмента должно содержать шаблон функции strftime. Значение по умолчанию 0.
Пример:
ffmpeg -i input.mkv -codec copy -map 0 -f ssegment -strftime 1 \
-segment_list test_stream.m3u8 -segment_time 10 test_stream_%Y%m%d%H%M%S.ts
stream_segment
является вариантом мультиплексора, используемого для записи в выходные форматы потоковой передачи, то есть для которых не требуются глобальные заголовки, и рекомендуется для вывода, например, в сегменты транспортного потока MPEG. ssegment
более короткий псевдоним для stream_segment
,
Нет возможности добавить метку времени в файл ts с помощью ffmpeg. Единственный оставленный вариант - вносить изменения в код ffmpeg. Вы можете изменить файл libavformat/ сегмент.c. изменять entry->filename
переменная в segment_file()
функция.