Geo*_*nza 11 opencv ffmpeg decoding h.264 ip-camera
我正在使用OpenCV的VideoCapture(使用ffmpeg支持编译)从IP摄像机传输H264内容.
到目前为止,工作正常,但每隔一段时间我就会出现解码错误(来自我假设的ffmpeg):
[h264 @ 0x103006400] mb_type 137 in I slice too large at 26 10
[h264 @ 0x103006400] error while decoding MB 26 10
[h264 @ 0x103006400] negative number of zero coeffs at 25 5
[h264 @ 0x103006400] error while decoding MB 25 5
[h264 @ 0x103006400] cbp too large (421) at 35 13
[h264 @ 0x103006400] error while decoding MB 35 13
[h264 @ 0x103006400] mb_type 121 in P slice too large at 20 3
[h264 @ 0x103006400] error decoding MB 20 3
Run Code Online (Sandbox Code Playgroud)
这些消息显示在控制台中.有没有干净的方式来听这些?我想跳过处理毛刺帧.
任何提示/提示?
最近我解决了同样的问题并尝试解释我遵循的步骤。
我更新了最新的opencv_ffmpeg.dll(我将 opencv_ffmpeg.dll 重命名为 opencv_ffmpeg310.dll 以与 OpenCV 3.1 一起使用,还重命名相同的 dll opencv_ffmpeg2412.dll 以与 OpenCV 2.4.12 一起使用
通过这样做,基本的捕获帧和显示成功,没有问题。但如果我进行一些图像处理或检测会导致捕获帧之间的延迟,仍然存在同样的问题。
为了解决第二个问题,我使用一个线程连续抓取帧并更新全局Mat以进行处理。
在这里 你可以找到我的测试代码(它需要一些改进,例如在更新 Mat 时使用互斥体和锁定内存)
我希望这些信息有用(抱歉我的英语不好)