FFMPEG是否可以随时间改变比例?


11

好的,因此,使用重叠式滤镜,您可以使用“ t”变量随时间更改视频的x / y位置。例如,overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0可用于在2秒钟后开始从左上角向右上角滑动覆盖的元素。

我想做的是使用类似的原理缩放元素。我希望能够通过使用表达式(例如scale=w=iw*t,或沿该行显示的内容)随时间更改视频的比例。

这可能吗?

当我通过-filter_complex运行该表达式时,我得到

计算表达式“ iw * t”时出错。

也许out_w:'iw * t'或out_h:'-1'的表达式是自引用的。

我感觉如果我想获得此功能,很有可能需要打补丁FFMpeg,但我想我首先要问一问,看看是否有人知道这种事情!

有谁知道如何完成这样的任务?

谢谢您的帮助!


现在听起来更像是一个语法错误,但是我之前从未使用过该功能,所以很遗憾我在这里没有帮助。
PTS

1
涉及叠加过滤器时,t不是定义的东西。
v010dya


1
@alexspeller比例过滤器不支持时间轴编辑,因此不可能直接进行。我将检查是否有解决方法。
Gyan

1
H.264 / 5输出在技术上是可行的。不知道播放器/编辑器将如何处理它。
Gyan

Answers:


2

据我了解,“ t”仅被评估一次。您是否已阅读以下内容:https : //ffmpeg.org/ffmpeg-filters.html#zoompan

Ffmpeg文件:

9.170.1例子

  • 放大至1.5并同时平移到图片中心附近的某个位置:

zoompan = z ='min(zoom + 0.0015,1.5)':d = 700:x ='if(gte(zoom,1.5),x,x + 1 / a)':y ='if(gte(zoom, 1.5),y,y + 1)':s = 640x360

  • 放大至1.5,并始终平移图片中心:

zoompan = z ='min(zoom + 0.0015,1.5)':d = 700:x ='iw / 2-(iw / zoom / 2)':y ='ih / 2-(ih / zoom / 2)'

  • 与上述相同,但没有暂停:

zoompan = z ='min(max(zoom,pzoom)+0.0015,1.5)':d = 1:x ='iw / 2-(iw / zoom / 2)':y ='ih / 2-(ih /缩放/ 2)'

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.