ffmpeg 使用时区偏移叠加时间戳而不使用 Epoch

ffmpeg 使用时区偏移叠加时间戳而不使用 Epoch

当前正尝试在视频马赛克上叠加一个非常精确的时间戳,但我遇到了一个问题,即唯一可打印的实时时间戳是 UTC。

两年前有人在这里问过类似的问题ffmpeg 覆盖时间码与时区偏移但它对我的情况没用,除非我以某种方式找到一种方法来输入提前 2 小时的实时 Epoch 代码。

我正在使用的代码片段是:

drawtext=font=/usr/share/fonts/truetype/msttcorefonts/Comic_Sans_MS.ttf:fontsize=60:box=1:[email protected]:fontcolor=magenta:x=(w-text_w)/2:y=(h-text_h)/2:text='%{gmtime\:%H\\\\\:%M\\\\\:%S}'[time];\

我希望这只是一个替换的问题%H%H+2%(H+2)遗憾的是并非那么简单。

答案1

非常简单的解决方案,我不敢相信我花了这么长时间才弄清楚(应该阅读官方过滤器文档)。您gmtime根本不需要使用,只需使用localtime,将系统时间设置为所需的时区即可。

因此命令如下:

drawtext=font=/usr/share/fonts/truetype/msttcorefonts/Comic_Sans_MS.ttf:fontsize=60:box=1:[email protected]:fontcolor=magenta:x=(w-text_w)/2:y=(h-text_h)/2:text='%{localtime\:%T}'[time];

相关内容