FFMPEG - 移动文本以每 'X' 秒出现一次
FFMPEG - Moving text to appear every 'X' Seconds
这是一个用于移动文本(从左到右)的 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' 秒出现一次?
它就在 documentation 中。例如,要使其每 3 秒出现一次,持续时间为 1 秒,您可以将以下内容添加到 drawtext
过滤器:
enable=lt(mod(t\,3)\,1)
更新:根据评论,它必须是连续滚动的文本。这是一个文本示例,该文本在 10 秒内滚动整个视频宽度,在初始时间 10 秒之后,然后在循环中消失另外 10 秒:
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
用于每 10 秒重复一次
启用:enable=gt(mod(t\,20)\,10)
,在初始 10 秒后每 20 秒显示 10 秒的文字动画
这是一个用于移动文本(从左到右)的 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' 秒出现一次?
它就在 documentation 中。例如,要使其每 3 秒出现一次,持续时间为 1 秒,您可以将以下内容添加到 drawtext
过滤器:
enable=lt(mod(t\,3)\,1)
更新:根据评论,它必须是连续滚动的文本。这是一个文本示例,该文本在 10 秒内滚动整个视频宽度,在初始时间 10 秒之后,然后在循环中消失另外 10 秒:
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
用于每 10 秒重复一次启用:
enable=gt(mod(t\,20)\,10)
,在初始 10 秒后每 20 秒显示 10 秒的文字动画