让ffmpeg参考位置坐标吗?

让ffmpeg参考位置坐标吗?

假设我有以下 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/收缩文本文件。

相关内容