.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
查看段复用器,它提供了更通用、更灵活的分段器实现,可用于执行 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
。
答案2
没有使用 ffmpeg 在 ts 文件中添加时间戳的选项。剩下的唯一选择就是在 ffmpeg 代码中进行更改。您可以修改 libavformat/segment.c 文件。修改函数entry->filename
中的变量 。segment_file()