Video FFMPEG图像到视频缩放的起始位置

Video FFMPEG图像到视频缩放的起始位置,video,ffmpeg,video-encoding,Video,Ffmpeg,Video Encoding,在用图像创建mp4幻灯片时,我在网上为zoompan提供了一些示例,但我仍然没有完全掌握如何使它们从图像中的某个位置开始。下面是典型的命令: ffmpeg-i image-000.jpg-filter_complex“color=c=black:r=60:s=1920x1080[demo];[0:v]格式=pix_-fmts=yuva420p,比例=8000:-1,zoompan=z='min(zoom+0.0005,1.2):s=2000x1333:d=360:x='if(gte(zoom,0

在用图像创建mp4幻灯片时,我在网上为zoompan提供了一些示例,但我仍然没有完全掌握如何使它们从图像中的某个位置开始。下面是典型的命令:

ffmpeg-i image-000.jpg-filter_complex“color=c=black:r=60:s=1920x1080[demo];[0:v]格式=pix_-fmts=yuva420p,比例=8000:-1,zoompan=z='min(zoom+0.0005,1.2):s=2000x1333:d=360:x='if(gte(zoom,0.9),x+1/a)':y='if(gte(zoom,0.9),y,y+1),淡入:0:25:alpha=1,setpts=STARTPTS=0.20][v0tb] -t6-c:v libx264-y out000.mp4

我使用的照片的纵横比通常是3x2或4x3,所以我知道在16x9视频中,它们必须在某个地方被剪掉。上述代码(以及许多其他“Ken Burns effect”示例)的问题是,它们从图像的底部开始,然后放大或缩小,从不显示底部

如何使动画在图像的更下方开始?我在y=“…”部分所做的任何操作都不会影响动画。甚至不在0到100000之间输入常量,而是调整公式y='if(gte(zoom,0.9),y,y+1')中的值


注意:我已经在原始图像中使用裁剪或填充获得了一些成功,但我更想了解如何更好地将zoompan定位在图像内部。

因为缩放永远不能小于1,在expr
'if(gte(zoom,0.9),x,x+1/a)
gte(zoom,0.9)
中,缩放始终为真,expr的计算结果将始终为
x
。x被初始化为0,因此expr的计算结果始终为0。y表达式也是如此

使用

y='if(打开,y-1,ih ih/缩放)


从底部向上开始动画
on
是输出帧计数,从零开始,所以第一帧设置在底部,然后每帧向上移动1像素。

谢谢!这就是我玩的不同盘子的窍门。现在我不需要在缩放之前进行裁剪和填充,就可以获得类似的结果,这也使得渲染速度加快了一点。