有没有办法检测和提取视频文件(最好是h264格式)中每个突然变化(相机变化,幻灯片变化,场景变化,明白了吗?)的缩略图。
类似于比较关键帧并查找大于某个给定常数的差异的方法。
似乎这样做可以实现:
ffmpeg -i video.mp4 -vf select="eq(pict_type\,I)" -vsync 0 -an keyframes%03d.png
这是一个视频过滤器,选择了I帧,这些帧基本上是每次出现重大变化时的参考帧。
更多信息:http://ffmpeg.org/ffmpeg.html#select
这特别适用于基于MPEG的压缩,不知道其他编解码器的行为如何。
编辑:
正如LordNeckbeard所指出的那样,scene
选项,例如ffmpeg -i video.mp4 -vf select='gt(scene\,0.9)' -vsync 0 -an keyframes%03d.jpg
,对我想要实现的效果更好。
select
过滤器中的scene
选项。文档中有一个示例,可以创建第一场景的马赛克。 - llogan