我知道标题有点模糊,但我不确定如何描述它.
CentOS与ffmpeg + OpenCV 2.4.9.我正在研究一种简单的运动检测系统,它使用来自IP摄像机的流(h264).
偶尔流会打嗝并抛出一个"坏帧"(见下面的pic-bad.png链接).问题是,这些帧在很大程度上与先前帧不同,并且即使没有发生实际运动也会导致"运动"事件被触发.
下面的图片将解释这个问题.
好帧(捕获的动作):
坏帧(没有动作,只是一个破帧):
坏帧被随机捕获.我想我可以通过分析(循环)通过从某个位置向下的像素来制作一个糟糕的帧检测器,看看它们是否完全相同,但我想知道是否还有其他的,更有效的,"这本书"检测这些类型的坏帧并跳过它们的方法.
谢谢!
编辑更新:
使用C++运动检测程序抓取框架,cvQueryFrame(camera);
因此我不直接与ffmpeg接口,OpenCV在后端进行.我正在使用从git源编译的最新版本的ffmpeg.所有的库都是最新的(h264等,昨天全部下载和编译).数据来自RTSP流(ffserver).我已经测试了多台摄像机(大华1 - 3 MP机型),并且机架故障在所有这些机架上非常持久,虽然它不会连续发生,只是偶尔发生一次(例如:每10分钟一次).