使用ffmpeg调整图像大小

And*_*son 22 ffmpeg image-processing

是否可以使用FFMPEG调整图像大小?

到目前为止我有这个:

ffmpeg. -i 1.jpg -vf scale=360:240 > 2.jpg
Run Code Online (Sandbox Code Playgroud)

我收到错误消息"必须至少指定一个输出文件"

可能吗?

And*_*nia 48

你可以试试这个:

ffmpeg -i input.jpg -vf scale=320:240 output_320x240.png
Run Code Online (Sandbox Code Playgroud)

我从源头得到了这个

注意:缩放过滤器还可以在保留纵横比的同时自动计算尺寸:scale=320:-1scale=-1:240

  • 缩放滤镜还可以在保留纵横比的同时自动计算尺寸:`scale = 320:-1`或`scale = -1:240`. (10认同)
  • 有趣的是,png输出工作正常.JPG受到了抨击. (2认同)

Bor*_*hik 11

还可以调整图像大小以适应某些尺寸,并将其余尺寸放入信箱中。

命令示例:

ffmpeg -i IN.png -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" OUT.jpg
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅此答案。


Ani*_*kur 10

如果你想保留宽高比,你可以做 -

./ffmpeg -i 1.jpg -vf scale="360:-1" 2.jpg
Run Code Online (Sandbox Code Playgroud)

或者如果要根据输入宽度和高度调整大小.例如.让我们说你可以做的输入宽度和高度的一半 -

./ffmpeg -i 1.jpg -vf scale="iw/1:ih/2" 2.jpg
Run Code Online (Sandbox Code Playgroud)

哪里

iw : input width
ih : input height
Run Code Online (Sandbox Code Playgroud)

  • 我发现这非常有用。应该注意的是,将高度和宽度切成两半的正确用法是 -vf scale="iw/2:ih/2"。 (3认同)

Mis*_*agh 9

感谢@andri-kurnia 的回答

此示例还展示了如何调整多个图像的大小(在 Windows 中):

for %j in (*.jpg) do ffmpeg -i "%j" -vf scale=480:-1 "Small-%~nj.jpg"
Run Code Online (Sandbox Code Playgroud)

此命令将调整.jpg文件夹中所有图像的大小,将宽度设置为 480,同时保持比例,并在调整大小的图像名称的开头添加“Small-”。而且我认为对于某些类型,可能有必要使用-2而不是-1。为了指定高度,我们可以使用 -1:480 之类的值。


Kri*_*ofe 5

将图像比例缩小到宽度:320px 和高度:240px 的边界框。

ffmpeg -i src_image_path -vf 'scale=if(gte(a\,320/240)\,min(320\,iw)\,-2):if(gte(a\,320/240)\,-2\,min(240\,ih))' dst_image_path

a: aspect ratio
iw: in width
ih: in height
Run Code Online (Sandbox Code Playgroud)

如果 src 图像大小在边界框中,则不要调整其大小。如果图像的宽高比大于 320/240 并且宽度大于 320,请将宽度调整为 320 并保持宽高比。如果图像的长宽比小于 320/240 并且高度大于 240,请将高度调整为 240 并保持长宽比。