6

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

我将如何配置 -vf scale 功能来做到这一点?

使用最新的 ffmpeg 0.11

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

4

2 回答 2

8

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

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

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

(来源:ffmpeg trac

于 2013-10-12T13:31:01.060 回答
3

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

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

就是这样。

于 2012-08-28T04:41:43.163 回答