使用 FFMPEG 绘图文本过滤器从左到右擦除的循环文本

Bac*_*alo 3 ffmpeg

我有以下 FFMPEG 命令,它可以正确擦除视频底部的文本。

ffmpeg -y -i test_small.mov -acodec libmp3lame -vcodec libx264 -pix_fmt yuv420p -b:a 192k -b:v 1400k -ar 44100 -crf 18 -vf "drawtext=text=string1 string2 string3 string4 string5 string6 string7 :expansion=normal:fontfile=foo.ttf: y=h-line_h-10:x=(5*n): fontcolor=white: fontsize=40: shadowx=2: shadowy=2" -an left_to_right_small.mp4
Run Code Online (Sandbox Code Playgroud)

但这只会发生一次。如何更改此设置,以便动画在每个循环之间有延迟循环?

Tim*_* Gu 5

这有效:

-vf "drawtext=text=string1 string2 string3 string4 string5 string6 string7 :expansion=normal:fontfile=foo.ttf: y=h-line_h-10:x=(mod(5*n\,w+tw)-tw): fontcolor=white: fontsize=40: shadowx=2: shadowy=2"
Run Code Online (Sandbox Code Playgroud)

请参阅Desmos了解其工作原理。

图形

x轴是视频宽度。

y轴是时间。

黑线是图像的宽度(可在 Desmos 中通过滑块调整x)。

黑色阴影是我公式中的文本。

tin Desmos 对应twin FFmpeg CMD,即文本的宽度。

蓝色区域是原始公式中的文本。