这是一个ffmpeg命令,用于移动文本(从左到右)
ffmpeg -i input.mp4 -vf drawtext="fontfile=/path/to/fonts/FreeSans.ttf:text='Hello World':fontcolor=white@1.0:fontsize=16:y=h-line_h-100:x=(2*n)-tw" -codec:v libx264 -codec:a copy output.mp4
我想知道如何使移动文本在'X'秒后开始并每'X'秒出现一次
就在文档中。例如,要使它每3秒出现一次,持续1秒,您可以向drawtext
过滤器添加以下内容:
enable=lt(mod(t,3),1)
更新:根据评论,它必须是一个连续滚动的文本。下面是一个文本的示例,在初始时间为10s之后,以10s的时间滚动整个视频的宽度,然后再消失10s,在一个循环中:
ffmpeg -i input.mp4 -filter:v drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSans.ttf:text='Hello World':fontcolor=white@1.0:fontsize=16:y=h-line_h-100:x=w/10*mod(t,10):enable=gt(mod(t,20),10)" -codec:v libx264 -codec:a copy -y output.mp4
细节:
水平运动:
x=w/10*mod(t,10)
其中w
为输入宽度,t
为时间,w/10
为移动速度(全宽度10s),t mod 10
每10s重复一次启用:
enable=gt(mod(t,20),10)
,在初始10s后每20s显示10s的文本动画