我有以下 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
但这只发生一次。我该如何改变它,让动画循环播放,每次循环之间都有延迟?
答案1
这有效:
-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"
看德斯莫斯了解其工作原理。
X-axis 是视频宽度。
是-轴是时间。
黑线是图像的宽度(可通过滑块在 Desmos 中调整x
)。
黑色阴影是我的公式中的文本。
t
在Desmos中对应tw
在FFmpeg CMD中,也就是文本的宽度。
蓝色区域是原始公式中的文本。