首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ffmpeg制作缩略图的最有效方法?[Windows 10]

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

Stack Overflow用户
提问于 2016-07-15 10:28:07
回答 2查看 4.6K关注 0票数 2

我通常使用ThumbnailMe制作缩略图的联系人表单。我的默认设置是15行x 5列,所以在45分钟到大约90分钟的视频中有75张图像。ThumbnailMe几乎可以瞬间制作出这种大小的接触表。最近需要为许多视频制作大量联系人表,这让我考虑使用命令行选项,这样我就可以批量执行这些操作。我尝试了几种不同的方法从命令行制作缩略图:

代码语言:javascript
复制
ffmpeg -ss 300 -i myvideo.avi -vf fps=1/300 %d.jpg

代码语言:javascript
复制
ffmpeg -i myvideo.avi -vf fps=1/60 %d.jpg

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

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

EN

回答 2

Stack Overflow用户

发布于 2016-07-15 14:20:59

fps过滤器是一种低效的方法。选择过滤器是更好的选择。如果您愿意,FFmpeg还提供了一个过滤器来生成网格。

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

这将每800帧选择一次,将选定帧按比例缩放到200 px宽度,然后平铺15x5布局中的前75个选定帧。如果需要,平铺滤镜具有用于外边界和帧间填充的options

为了尽可能提高效率,应该选择选择间隔(800),以便选择过滤器不会输出比网格所需的更多的帧。此外,您可以省略缩放和平铺,在FFmpeg中节省一些时间,并在其他地方进行。

票数 2
EN

Stack Overflow用户

发布于 2017-01-27 00:09:16

我使用mt https://github.com/mutschler/mt/releases作为我的联系人,这是相当快的,应该可以提供你在任何地方所要求的一切。

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

fast和default模式之间的主要区别是,当快进到下一个捕获位置时,它会稍微不准确一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38386981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档