对输入图像应用填充,同时组合多个图像和音轨



我正在使用以下命令使用ffmpeg创建幻灯片:

ffmpeg -r 1 -i IMG_%04d.jpeg -i audio.mp3 -c:v libx264 -c:a aac -pix_fmt yuv420p -r 24 -y output.mp4 -vf pad=ceil(iw/2)*2:ceil(ih/2)*2

我不得不添加pad=ceil(iw/2)*2:ceil(ih/2)*2来制作宽度或高度偶数,因为如果输入图像的宽度/高度之一为奇数,ffmpeg 会抛出错误。现在我的问题是;输入图像可以具有不同的分辨率和纵横比。我想为所有图像添加填充(左/右或上/下(,以使它们在转换为视频帧之前具有相同的大小。我怎样才能以有效的方式实现这一目标?

如果我能指定输出分辨率并且所有图像都按比例缩小或向上,根据该分辨率保持其纵横比不变,那就太好了。

我已经通过这种方式让它工作:

ffmpeg -r 1 -i image%4d.png -i audio.mp3 -filter_complex scale=w=%d:h=%d:force_original_aspect_ratio=1,pad=%d:%d:(ow-iw)/2:(oh-ih)/2 -c:v libx264 -c:a aac -pix_fmt yuv420p -r 1 -y output.mp4

这样输入图像的纵横比保持不变,也解决了奇怪的图像宽度/高度问题。我希望这个答案能帮助其他面临相同问题的用户。

最新更新