ffmpeg图像比例然后裁剪不起作用

jus*_*res 3 ffmpeg

我想从视频生成一个图像,但首先我想将其缩放到一定的宽度/高度,然后将其裁剪为一个正方形的大小,问题是我的新版本ffmpeg似乎没有首先使用缩放.

ffmpeg版本2.8.6-1ubuntu2

失败:

ffmpeg -y -i input.mp4 -an -ss 5 -s 150x150 -vf scale=-1:150,crop=150:150 -vframes 1 output-small.jpg
Run Code Online (Sandbox Code Playgroud)

宽度'150'或高度'150'的尺寸太大或非正尺寸无效

作品:

ffmpeg -y -i input.mp4 -an -ss 5 -s 150x150 -vf crop=150:150,scale=-1:150 -vframes 1 output-small.jpg
Run Code Online (Sandbox Code Playgroud)

然而,我不能满足于第二个命令,因为我生成的图像可能比原始尺寸大(我为每个图像创建了几个不同的尺寸),因此必须首先进行缩放.任何人都知道这里有什么改变或我做错了什么?

Gya*_*yan 5

这可能是因为您的视频是人像,因此缩放后的图片宽度小于150像素.因此作物失败了.

此外,您应该跳过该-s选项,否则您将触发两个缩放器执行.

尝试

ffmpeg -y -i input.mp4 -ss 5 -vf scale='if(gt(iw,ih),-1,150)':'if(gt(iw,ih),150,-1)',crop=150:150 -vframes 1 output-small.jpg
Run Code Online (Sandbox Code Playgroud)