ffmpeg:如何创建裁剪的缩略图?


10

ffmpeg使用以下命令创建视频缩略图:

ffmpeg -itsoffset -4 -i video.mp4 -vframes 1 thumb.jpg

这给了我一个与视频大小相同的缩略图(大小未知,例如960x540)。但是我需要的是给定尺寸(例如200x200)的正方形(裁剪的)缩略图。不得调整结果大小,而应从中间裁剪,并且纵横比不得更改。

如何做到这一点?


为什么用-itsoffset代替-ss?最近,我看到用户从视频中输出图像的用法有所增加。
llogan 2013年

@LordNeckbeard:对不起,把选项混在一起了。发现这个有关更多信息-itsoffset对比-sssuperuser.com/questions/538031/...
格奥尔格Ledermann

Answers:


12

您可以使用crop视频过滤器:

ffmpeg -ss 4 -i video.mp4 -vf crop=200:200 -vframes 1 output.jpg
  • 默认情况下,裁切将居中。

  • 使用-ss代替-itsoffset选择您的偏移时间。

  • 您可以使用来控制JPEG输出质量-qscale:v。通常使用2-5的值是不错的;较低的值表示较高的质量。

  • crop过滤器还可以接受输入和输出宽度和高度值:iwihowoh。这样可以进行更灵活,更具创意的过滤:crop=iw-100:ih-50

您可以进行测试ffplay以获取预览:

ffplay video.mp4 -vf crop=200:200

原始图像(使用testsrc源过滤器生成:

ffmpeg -f lavfi -i testsrc -vframes 1 output.jpg 

原始图像

裁剪图片:
裁剪图像


6

您可以先对其进行缩放,然后对其进行裁剪以获得更好的输出;)

ffmpeg -ss 10 -i "Ali_Video.mp4" -vframes 1 -filter "scale=-1:300,crop=400:300" "output.jpg"

在0:49输入视频 输出图像

ffmpeg -ss 10 -i "Ali_Video.mp4" -vframes 1 -filter "scale=-1:150,crop=200:150" "output.jpg"

另一个缩略图

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.