编写 FFmpeg 脚本以在特定时间码将 y 坐标中的文本移动一定的增量
Scripting FFmpeg to move text in y co-ordinate by some delta at specific time-codes
我正在使用这样的基本 drawtext 命令
ffmpeg -i output.mp4 -vf \
'drawtext=textfile='textfile.txt':x=0:y=0 \
:fontsize=30:fontcolor=white:borderw=3 \
:bordercolor=black:box=0' output.mp4"
将固定文本放在位置 (x, y) = (0,0)
我想做的是在特定的时间代码将此文本在 y 平面上移动 10 个点。
at 00:00:10, y would be 0
at 00:00:11, y would be 10
at 00:00:43, y would be 20
...
...
at 00:10:44, y would be 30
因此 'y' 坐标在 'keytimes'
处固定增量为 10
有办法吗?
基本方法是使用一个表达式,
y='lte(t,10.99)*0+between(t,11,42.99)*10+between(t,43,643.99)*20+gte(t,644)*30'
每个子表达式都是 time-qualification * position
的形式,并且对于时间线的任何片段,只有一个时间限定的计算结果为 1。
我正在使用这样的基本 drawtext 命令
ffmpeg -i output.mp4 -vf \
'drawtext=textfile='textfile.txt':x=0:y=0 \
:fontsize=30:fontcolor=white:borderw=3 \
:bordercolor=black:box=0' output.mp4"
将固定文本放在位置 (x, y) = (0,0)
我想做的是在特定的时间代码将此文本在 y 平面上移动 10 个点。
at 00:00:10, y would be 0
at 00:00:11, y would be 10
at 00:00:43, y would be 20
...
...
at 00:10:44, y would be 30
因此 'y' 坐标在 'keytimes'
处固定增量为 10有办法吗?
基本方法是使用一个表达式,
y='lte(t,10.99)*0+between(t,11,42.99)*10+between(t,43,643.99)*20+gte(t,644)*30'
每个子表达式都是 time-qualification * position
的形式,并且对于时间线的任何片段,只有一个时间限定的计算结果为 1。