FFmpeg 过滤器使用其他流特性

FFmpeg 过滤器使用其他流特性

我有一个工作流程,其中有一个 ffmpeg 命令,其中包含多个图像和一个视频作为输入

ffmpeg -loop 1 -r 50 -t 4.0 -i img1.png -loop 1 -r 50 -t 1.0 -i img2.png -i video.mp4 -loop 1 -r 50 -i img3.png ...

我对输入执行了一些操作,最后使用 concat 过滤器将所有内容连接在一起。目前,我仅对水平视频(1920x1080)执行此操作,现在我希望能够对垂直视频输入(1080x1920)执行此操作。问题是我要使用的图像将始终是水平的,只有输入视频是垂直的。所以我必须将图像缩放到 1080x1920 才能将它们连接起来。

当我对其进行硬编码测试时,它可以工作,但我找不到使我的命令“混合”的方法,因此它既适用于垂直,也适用于水平。确定我必须输出水平视频还是垂直视频的唯一方法是输入视频,所以我想到了类似这样的方法来确定我要对图像应用什么缩放比例:

[0:v]scale='if(lt(in_w,in_h),1080,1920)':'if(lt(in_w,in_h),1920,1080)'[v0]

在此过滤器中,in_w 和 in_h 指的是图像的输入宽度和高度,但我想使用视频的宽度和高度。那么是否可以在其他流中使用视频尺寸?谢谢

相关内容