在绘图文本 (FFMPEG) 中使用 IF 语句

Using an IF-Statement inside a drawtext (FFMPEG)

我目前正在尝试使用 FFMPEG 在视频上实现计时器,因此它应该从 00.00 开始并在一定数量的帧后开始计时,并在一定数量的帧后再次停止计时。所以计时器应该像这样工作:

00:0000:0000.00(开始计时)00.0100.02[...]05.8805.89(停止计时) 05.89 05.89 05.89

到目前为止,我得到了以下(最小)命令:

ffmpeg -i input.mp4 
-filter_complex "[0:v]drawtext=fontfile='C\:font.ttf':
text='%{eif\:n/30\:d\:2}\:%{eif\:((mod(n,30))/30)*100\:d\:2}':
fontcolor=black:fontsize=55:x=(1705.5-(text_w/2)):y=(1000.5-(text_h/2)),format=yuv420p" 
-pix_fmt yuv420p -c:a copy out.mp4

filter_complex 里面还有一些东西,所以我不能用 -vf 或类似的东西替换它。

感谢您的帮助!

假设您要在 n=200 开始计数并在 n=700 结束。然后让我们称 min(max(n-200,0),700-200) 为 X

您的文本表达式现在变为

text='%{eif\:X/30\:d\:2}\:%{eif\:((mod(X,30))/30)*100\:d\:2}'