1

Можно ли иметь файлы .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 ответа2

2

Нет возможности добавить метку времени в файл ts с помощью ffmpeg. Единственный оставленный вариант - вносить изменения в код ffmpeg. Вы можете изменить файл libavformat/ сегмент.c. Измените entry->filename переменная имени файла в segment_file() .

2

Посмотрите сегментный мультиплексор, который обеспечивает более общую и гибкую реализацию сегментатора и может использоваться для выполнения сегментации HLS.

Мультиплексор сегмента поддерживает расширение 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 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .