ffmpeg - 如何使用 FFMPEG 将任意格式化的时间戳添加到视频中?

标签 ffmpeg timestamp

我从自定义工具调用 ffmpeg 来连接视频文件,同时在输出中覆盖时间戳。输出视频需要具有从任意时间开始的时间戳。格式必须是带有秒和子午线的 12 小时制时钟,例如 10:34:59 AM 或 6:13:09 PM。这是我现在使用的完整命令:

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:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bddfd2c5ded2d1d2cf80dfd1dcded6fd8d938e" rel="noreferrer noopener nofollow">[email protected]</a>: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 纪元以来以微秒为单位)来设置初始时间码。

关于ffmpeg - 如何使用 FFMPEG 将任意格式化的时间戳添加到视频中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32193274/

相关文章:

Python Popen - 环境 - ffmpeg 崩溃

ffmpeg - 使用ffmpeg混合不同长度的音频/视频

android - 在 Android 中使用 ffprobe

java - 无法将客户端的时间戳发送到服务器

java - 在 Ant 属性中存储 UNIX 时间戳?

ios - 使用 linphone ios sdk 的冲突类型错误

FFmpeg 图像调整大小以填充像 `cover` 这样的裁剪

postgresql - 通过在 postgresql 上索引时间戳列来加快搜索速度?

php - 时间戳(具有不同的时区格式)在未来吗?

oracle11g - 从返回的 Oracle 时间戳列中检索数据