我试图获取视频的代表性帧,以便去除可能出现在视频中的冗余帧。这是我用来获取帧的。从视频中使用ffmpeg场景变化/镜头检测/图像提取
./ffmpeg -i video.mp4 -vf select="eq(pict_type\,PICT_TYPE_I)" -vsync 2 -s 320x240 thumb-%02d.png
我也曾尝试
./ffmpeg -i video.mp4 -f image2 -vf "select=gt(scene\,.4)" -vsync vfr thumb%04d.png
在这样做的主要问题是模糊的。如果我只是每5秒采样一次帧,我没有看到任何模糊,但是使用上面的两个命令我得到了很多模糊。
视频可以在这里找到,http://www.cs.umd.edu/~bharat/video.mp4
为了采样视频每隔10秒,我使用下面的:
./ffmpeg -i video.mp4 -r 1/10 filename%03d.jpg
输出使用正常取样:
使用select的输出:
但是,正常采样可能对某些视频不利,并且可能会产生冗余帧。有没有一种方法可以在ffmpeg中使用某些选项并获取没有此模糊的帧?如果正常采样可以得到好的帧,那么在附近应该有帧而不模糊。我在ffmpeg中查看了诸如scenecut之类的选项,但我并不熟悉将它们用于此应用程序。
此结果预期与定期帧采样。它是否一定需要'ffmpeg'?有很多免费的镜头检测实现。 – bjou
不一定,任何事情都会做,我只需要摆脱模糊的帧 – Bharat