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

Geo*_*ann 11 video ffmpeg images

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

ffmpeg -itsoffset -4 -i video.mp4 -vframes 1 thumb.jpg
Run Code Online (Sandbox Code Playgroud)

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

如何做到这一点?

llo*_*gan 12

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

ffmpeg -ss 4 -i video.mp4 -vf crop=200:200 -vframes 1 output.jpg
Run Code Online (Sandbox Code Playgroud)
  • 默认情况下,裁剪将居中。

  • 使用-ss而不是-itsoffset选择您的偏移时间。

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

  • crop过滤器还可以接受输入和输出宽度和高度值:iwihowoh。这允许更灵活和创造性的过滤:crop=iw-100:ih-50.

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

ffplay video.mp4 -vf crop=200:200
Run Code Online (Sandbox Code Playgroud)

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

ffmpeg -f lavfi -i testsrc -vframes 1 output.jpg 
Run Code Online (Sandbox Code Playgroud)

原图

裁剪图像:
裁剪图像


小智 6

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

ffmpeg -ss 10 -i "Ali_Video.mp4" -vframes 1 -filter "scale=-1:300,crop=400:300" "output.jpg"
Run Code Online (Sandbox Code Playgroud)

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

ffmpeg -ss 10 -i "Ali_Video.mp4" -vframes 1 -filter "scale=-1:150,crop=200:150" "output.jpg"
Run Code Online (Sandbox Code Playgroud)

另一个缩略图