在FFMPEG中缩放动画

时间:2014-04-23 09:54:45

标签: ffmpeg

我需要为视频输入制作缩放动画。

使用crop过滤器可以进行平移动画,如下所示:

"crop=320:240:max(0\\,min(iw-ow\\,n)):0"

前两个参数(宽度和高度)固定,后两个参数接受帧编号n或时间戳t作为表达式参数。

但宽度和高度仅评估一次(并且不能使用nt),因此我无法在时间函数中裁剪大小,然后将scale过滤器应用于原始尺寸。

我知道我可以:

  • 从buffersink中拉出每个帧后更改过滤器(我不在命令行中,我正在使用我的软件中的库)。我已经这样做了,但每个框架都没有,只能通过在线应用程序中的用户请求。
  • 使用geq过滤器“将通用公式应用于每个帧”。

这两种方法看起来都很昂贵。我可以使用另一种过滤器或方法吗?

请注意,我在Windows中使用zeranoe FFMPEG库。我宁愿不开发自己的过滤器或修改FFMPEG源。

1 个答案:

答案 0 :(得分:4)

您可以通过添加

来应用简单缩放
  

“zoompan = Z = '变焦+ 0.001'”

到您的视频过滤器。默认情况下,它会慢慢放大到左上角。如果你想做一些更高级的事情,你可以添加x和y参数,以开始在其他方向和可变速度上进行缩放。

的一个例子
  

“zoompan = Z = '变焦+ 0.001':X = '如果(GTE(缩放,1.5),X,X + 1)':Y = 'Y'”

会出现在右上方

  

“zoompan = Z = '变焦+ 0.001':Y = '如果(GTE(缩放,1.5),Y,Y + 1)':X = 'x' 的”

会走到左下角。