FFmpeg HLS muxer .ts формат имени файла

3774
Brad

Можно ли иметь .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 
1
Я хочу знать то же самое. chovy 8 лет назад 0

2 ответа на вопрос

2
Alam

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

2
LordNeckbeard

Посмотрите сегментный мультиплексор, который обеспечивает более общую и гибкую реализацию сегментатора и может использоваться для выполнения сегментации 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.

strftime устарела. Alam 9 лет назад 1
@ Алам Есть ли замена для `strftime`? Brad 9 лет назад 0
@Brad Я не могу найти один. Дайте мне знать, если найдете замену. Alam 9 лет назад 0
как вы используете это с `out.m3u8` в качестве последнего варианта? chovy 8 лет назад 0

Похожие вопросы