2012-08-28 90 views
3

我有两个视频,一个是500像素×100像素(只是一个例子,就像在iphone上记录的东西)。和一个1980×400像素的视频。我需要视频来转换保持宽高比。我知道-vf比例过滤器,例如-vf scale = -1:320,但它只占用宽度并相应地缩放高度。我的500 x 100视频宽度为320像素,高度为1600像素。这很糟糕,我需要它最大500像素高,最大宽度320(只是示例大小)。FFMPEG缩放,如何设置缩放宽度和高度不超过一定量?

我该如何配置-vf scale函数来做到这一点?

它采用了最新的ffmpeg 0.11

回顾:任何规模的视频,最高500高度:320宽度,同时保持纵横比

回答

6

为了避免编码黑带到视频(其中-aspect选项一样),你可以通过一对夫妇表达对视频缩放过滤器,而不是像这样:

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

注意,单引号需要被ffmpeg接收,所以如果你在一个shell下运行命令,你需要将它们转义(例如用双引号围绕整个scale=...参数)。

(信用:ffmpeg trac

1

你并不需要使用VF规模。只要给-s widthxheight,它就会缩放到这个尺寸。对于长宽比使用 - 方面 例如。我有一个320x240的文件,我想转换为360x240的黑色带在一边

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

就是这样。

+0

欣赏响应。虽然黑色带添加到文件大小,但不会保留原来的文件没有黑带产生一个较小的文件? – Darius

+0

好吧,黑带并不真正需要太多的编码。所以别担心。除此之外,他们只是因为我们要求编码器创建它们。如果你想保持宽高比,你会得到黑色条纹。 – av501

相关问题