我想从视频生成图像,但首先我要将其缩放到某个宽度/高度,然后将其裁剪为设定的正方形尺寸,问题是我的新版本ffmpeg似乎无法使用缩放
ffmpeg version 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
宽度'150'或高度'150'
的尺寸太大或非正尺寸无效
如下:
ffmpeg -y -i input.mp4 -an -ss 5 -s 150x150 -vf crop=150:150,scale=-1:150 -vframes 1 output-small.jpg
但是我不能满足于第二个命令,因为我生成的图像可能比原始尺寸大(我为每个图像创建了几个不同的尺寸),因此必须首先进行缩放。任何人都知道这里有什么改变或我做错了什么?
答案 0 :(得分: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