Kri*_*ato 6 c++ video opencv codec live555
我正在尝试从IP摄像头实时捕捉图像.该流在VLC中运行得非常好,但OpenCV cvQueryFrame()似乎混杂并破坏了传入的图像,使其无法识别.
同样,从文件捕获工作正常,但不是实时流.如果它有所作为,我正在使用rtsp连接URL; 我也尝试过两种不同的相机型号(不同的品牌),问题仍然存在.
此外,(我假设)编解码器输出以下几种错误:
Error at MB: 1746和concealing 6000 DC, 6000 AC, 6000 MV errors.
我能做什么?
更新:序列中的第一个错误始终是cannot parallelize deblocking type 1, decoding such frames in sequential order
更新2:好吧,似乎OpenCV/FFMPEG与rtsp/h264流有问题.我已经尝试过Qt Phonon库,它也不起作用,我已经给Live555库快速概述了.这个最后似乎工作,在每个人都说它的意义上,应用程序示例(OpenRTSP)实际上很好地播放我的流.但是,说实话,掌握Live555代码似乎是一件很长的事情,我现在几乎买不起.除非有其他选择,我想我必须走那条路.
是否还有其他解决方案?
更新3:我从Live555代码中获得了测试RTSP客户端,所以我知道如何从流中提取h264帧信息,但现在我需要将帧信息重新组合成实际的可显示帧,这似乎不是什么东西直截了当!熟悉Live555的人都知道如何做到这一点?谢谢.
看来你需要一个额外的软件层来捕获流数据包并在本地重建帧,然后将它们提供给 openCV。您可以使用 libVLC 轻松实现这一点。这也可以避免编解码器问题,因为您可以使用 libVLC 解析几乎所有编解码器,然后将原始帧提供给 openCV。