这个问题在这里已有答案:
我在自定义工具中调用ffmpeg来连接视频文件,同时在输出中覆盖时间戳。输出视频需要具有从任意时间开始的时间戳。格式必须是12小时制,包括秒和meridiem,例如:上午10:34:59或下午6:13:09这是我现在正在使用的完整命令:
ffmpeg\bin\ffmpeg.exe -y -i "concat:input.mod" -ss 00:00:00 -t 00:02:17
-an -vcodec libx264 -profile:v baseline -level 13 -b:v 2000k -vf
"drawtext=fontcolor=white:fontsize=16:fontfile="/Windows/Fonts/arial.ttf":
box=1:[email protected]:x=(w-text_w-10):y=(h-text_h-5):
timecode='02\:36\:17\;00':rate=30000/1001" output.mp4
这将从输入文件的开头输出一个2分17秒的持续时间视频。输出视频的右下角有一个时间码,从02:36:17开始到02:38:34结束。我想要的就是这个,但不是在第0帧打印“02:36:17; 00”而是从那里开始计数,它应该在第0帧打印“2:36:17 AM”并从那里开始计数。
我尝试使用localtime
函数输出格式化时间,但它使用的时间值是调用drawtext
过滤器的时间。它不需要任意时间的参数。
我还查看了pts
函数,它似乎允许任意偏移但只支持两种格式化选项,这两种格式都不是我需要的时钟格式。
使用ffmpeg添加具有任意开始时间和格式的时间戳的正确方法是什么?
在this question的(目前)第三个答案中回答了这个问题。答案是不推荐使用的strftime扩展选项允许格式化,并接受未记录的基准时间参数(自UNIX纪元以来以微秒为单位)来设置初始时间码。