假设我有以下 ffmpeg 命令:
ffmpeg -i input.mp4 -vf "drawtext=text='hello world':x=100:y=100" output.mp4
但我需要文本位置遵循位置数据数组/列表(x,y),如下所示:
100, 100
101, 103
102, 106
103, 109
and so on...
x, y
我怎样才能让 ffmpeg 引用每一帧的坐标列表?
答案1
这并非直接可能的。
但是您可以创建一个包含多个过滤器的文本文件drawtext
,然后将其作为filter_script
.
例如
drawtext=text='hello world':x=100:y=100:enable='eq(n\,0)',
drawtext=text='hello world':x=101:y=103:enable='eq(n\,1)',
drawtext=text='hello world':x=102:y=106:enable='eq(n\,2)',
drawtext=text='hello world':x=103:y=109:enable='eq(n\,3)'
然后运行
ffmpeg -i in.mp4 -filter_script:v file.txt out.mp4
虽然我从你的数字序列中看到这似乎是值的线性插值。如果你正在对文本位置进行平滑的动画,那么你可以提供一个表达式并x
跳过y
/收缩文本文件。