使用 ffmpeg 调整图像大小
Posted
技术标签:
【中文标题】使用 ffmpeg 调整图像大小【英文标题】:Use ffmpeg to resize image 【发布时间】:2015-05-02 15:06:09 【问题描述】:是否可以使用 FFMPEG 调整图像大小?
到目前为止我有这个:
ffmpeg. -i 1.jpg -vf scale=360:240 > 2.jpg
我收到“必须指定至少一个输出文件”的错误消息
有可能吗?
【问题讨论】:
@LordNeckbeard 你很好。我最近才知道:) 【参考方案1】:感谢@andri-kurnia 的回答。
这个例子还展示了如何调整多个图像的大小(在窗口中):
for %j in (*.jpg) do ffmpeg -i "%j" -vf scale=480:-1 "Small-%~nj.jpg"
此命令将调整文件夹中所有.jpg
图像的大小,在保持比例的同时设置宽度480,并在调整大小的图像名称的开头添加“Small-”。
而且我认为对于某些类型,可能需要使用 -2 而不是 -1。对于指定高度,我们可以使用 -1:480 之类的东西。
【讨论】:
【参考方案2】:如果你想保持纵横比,你可以这样做 -
./ffmpeg -i 1.jpg -vf scale="360:-1" 2.jpg
或者如果你想根据输入的宽度和高度调整大小,假设你可以做输入宽度和高度的一半 -
./ffmpeg -i 1.jpg -vf scale="iw/1:ih/2" 2.jpg
在哪里
iw: input width
ih: input height
【讨论】:
【参考方案3】:将图像缩放到宽度: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
如果 src 图像大小在边界框内,则不要对其进行调整大小。 如果图像的纵横比大于 320/240 并且宽度大于 320,则将宽度调整为 320 并保持纵横比。 如果图像的纵横比小于 320/240 并且高度大于 240,则将高度调整为 240 并保持纵横比。
【讨论】:
【参考方案4】:还可以调整图像的大小以适应某些尺寸和信箱其余部分。
示例命令:
ffmpeg -i IN.png -vf "scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2" OUT.jpg
更多详情请见this answer。
【讨论】:
经过长时间的在线搜索并且不知道这被称为“信箱”,这个答案让我免于很多麻烦!非常感谢!【参考方案5】:你可以试试这个:
ffmpeg -i input.jpg -vf scale=320:240 output_320x240.png
我从source得到这个
注意:缩放过滤器还可以在保留纵横比的同时自动计算尺寸:scale=320:-1
,或scale=-1:240
【讨论】:
嗨,打败你了。这是我刚刚发现的。但是,当你得到正确答案并且你给了我你的时间我给你打勾:) 缩放过滤器还可以在保留纵横比的同时自动计算尺寸:scale=320:-1
,或scale=-1:240
。
这会导致我的图像损坏。只是一堆线条和颜色。 jpg转jpg
有趣,但 png 输出工作正常。 JPG 很无聊。
如果我想保持输出文件名不变怎么办?我可以有一个更短的命令吗?谢谢。以上是关于使用 ffmpeg 调整图像大小的主要内容,如果未能解决你的问题,请参考以下文章