FFMPEG缩放,如何设置比例所以宽度和高度不超过一定数量?

时间:2012-08-28 04:09:01

标签: linux ffmpeg

我有2个视频,一个是500像素乘100像素(只是一个例子,就像在iPhone上横向记录的东西)。和一个1980 x 400像素的视频。我需要视频转换维持宽高比。我知道-vf缩放滤镜,例如-vf scale = -1:320,但是它只取宽度并相应地缩放高度。我的500 x 100视频宽320像素,高1600像素。这很糟糕,我需要它最大500像素高,最大宽度320(只是示例尺寸)。

如何配置-vf缩放功能来执行此操作?

使用最新的ffmpeg 0.11

回顾:将任何视频缩放到最大500高度:320宽度,同时保持宽高比

2 个答案:

答案 0 :(得分:7)

为避免将黑带编码到视频中(-aspect选项执行),您可以将一些表达式传递给缩放视频过滤器,如下所示:

-vf scale='if(gt(a,320/500),320,-1)':'if(gt(a,320/500),-1,500)'

请注意,单引号需要由ffmpeg接收,因此如果您在shell下运行命令,则需要将它们转义(例如,使用双引号括起整个scale=...参数)。

(信用:ffmpeg trac

答案 1 :(得分:1)

您不需要使用vf比例。只需给出-s widthxheight,它就会扩展到那个大小。对于纵横比,请使用-aspect 例如。我有一个320x240文件,我想转换为360x240,侧面有黑色条带

ffmpeg -i input.mp4 -acodec copy -vcodec mpeg4 -s 360x240 -aspect 4:3 out.mp4

就是这样。