我通常使用 ThumbnailMe 制作缩略图的联系表。我的默认设置是 15 行 x 5 列,即 75 张图像,视频时长从 45 分钟到 90 分钟左右。 ThumbnailMe 几乎可以立即制作出这种尺寸的样版。最近需要为大量视频制作大量联系表,这让我查看了命令行选项,以便我可以批量执行这些操作。我尝试了几种不同的方法来从命令行制作缩略图:
ffmpeg -ss 300 -i myvideo.avi -vf fps=1/300 %d.jpg
or
ffmpeg -i myvideo.avi -vf fps=1/60 %d.jpg
无论我使用哪种方法,大约需要一分钟才能制作 16 张屏幕截图(从那里我将使用 ImageMagick 制作联系表)。正如我上面所说,只需按一下按钮,ThumbnailMe 就可以制作 15x5 的图像网格。 ThumbnailMe 是基于一个较旧的命令行程序 Movie Thumbnailer 构建的,我认为它使用了旧版本的 ffmpeg,或者至少是编解码器 libavcodec。
如果这些其他程序可以如此快地创建缩略图,为什么 ffmpeg 需要这么长时间才能为我制作缩略图?即使我以非常小的尺寸(例如 50x50)输出屏幕截图,创建每个图像仍然需要约 2 秒的时间。
The 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 中的一些时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)