ffmpeg制作缩略图的最有效方法是什么? [Windows 10]

时间:2016-07-15 02:28:07

标签: ffmpeg thumbnails

我通常使用ThumbnailMe制作缩略图联系表。我的默认设置是15行x 5列,因此75个图像,在45分钟到90分钟左右的视频中。 ThumbnailMe几乎可以立即生成这种尺寸的联系表。最近要求为很多视频制作大量的联系表,让我看一下命令行选项,这样我就可以分批进行。我尝试了几种不同的方法从命令行制作缩略图:

ffmpeg -ss 300 -i myvideo.avi -vf fps=1/300 %d.jpg

ffmpeg -i myvideo.avi -vf fps=1/60 %d.jpg

无论我使用哪种方法,只需要大约一分钟就可以制作16个截图(从那里我将使用ImageMagick制作联系表)。正如我上面所说,只需按一下按钮,ThumbnailMe就可以生成15x5的图像网格。 ThumbnailMe是基于较旧的命令行程序Movie Thumbnailer构建的,我认为它使用了旧版本的ffmpeg,或者至少使用了编解码器libavcodec。

如果这些其他程序可以如此快速地创建缩略图,为什么ffmpeg需要这么长时间来制作它们呢?即使我以非常小的尺寸(例如50x50)输出屏幕截图,每个图像的创建时间仍然需要约2秒。

2 个答案:

答案 0 :(得分:1)

fps过滤器是一种效率低下的方法。选择过滤器是更好的选择。如果需要,FFmpeg还有一个生成网格的过滤器。

ffmpeg -i in.mp4 -vf select=not(mod(n\,800)),scale=200:-1,tile=15x5 -vsync 0 in-grid.jpg

这将选择每第800帧,按比例缩放所选帧的宽度为200像素,然后以15x5布局平铺前75个选定帧。如果需要,磁贴过滤器具有options用于外边框和帧间填充。

为了使其尽可能高效,应选择选择间隔(800),以使选择滤波器不输出比网格所需的帧更多的帧。此外,您可以通过省略比例和平铺在FFmpeg中节省一些时间,并在其他地方执行此操作。

答案 1 :(得分:1)

我使用 mt https://github.com/mutschler/mt/releases作为我的联系表,这非常快,应该提供您要求的所有内容。

我刚做了一个快速测试,在默认模式下生成15x5网格需要大约27秒。在快速模式下,它只花了大约4秒钟。 (在6300Kbp / s,1280x720,h264 AVC文件上测试)

快速模式和默认模式之间的主要区别在于,当快速转发到下一个捕获位置时,它会更加不准确。