OpenCV/FFMpeg图像捕获问题

Kri*_*ato 6 c++ video opencv codec live555

我正在尝试从IP摄像头实时捕捉图像.该流在VLC中运行得非常好,但OpenCV cvQueryFrame()似乎混杂并破坏了传入的图像,使其无法识别.

同样,从文件捕获工作正常,但不是实时流.如果它有所作为,我正在使用rtsp连接URL; 我也尝试过两种不同的相机型号(不同的品牌),问题仍然存在.

此外,(我假设)编解码器输出以下几种错误: Error at MB: 1746concealing 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的人都知道如何做到这一点?谢谢.

Sdr*_*dra 2

看来你需要一个额外的软件层来捕获流数据包并在本地重建帧,然后将它们提供给 openCV。您可以使用 libVLC 轻松实现这一点。这也可以避免编解码器问题,因为您可以使用 libVLC 解析几乎所有编解码器,然后将原始帧提供给 openCV。

  • 我正在研究类似的问题。您能否发布将原始帧从 libVLC 传送到 openCV 的代码? (2认同)