FFmpeg HLS muxer .ts 文件名格式

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

答案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()

相关内容