使用视频中的ffmpeg进行场景变换/镜头检测/图像提取

Bha*_*rat 9 video ffmpeg image-processing video-processing computer-vision

我正在尝试为视频获取有代表性的帧,以便删除可能出现在视频中的冗余帧.这是我用来获取帧的方法.

./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中的场景切换等选项,但我不熟悉将它们用于此应用程序.

bjo*_*jou 3

我建议还看一下其他免费的镜头检测实现。例如,47Johan Mathe 的镜头检测的自定义阈值会产生以下结果(每个镜头的第一帧): 使用 jmathe 的 ShotDetect 进行投篮检测

然而,您的问题似乎更多地涉及视频稳定问题,而不是场景变化或镜头检测问题。您在上面以及 OP 中看到的模糊是视频固有的“伪像”,而不是由于用于剪切或采样视频的算法造成的。如果您想减少运动量,您应该查看这篇文章以及OpenCV 的视频稳定模块。还有很多研究正在解决这一挑战,包括这个这个

  • 射击检测链接已损坏 (3认同)