Opencv:从IP cam使用RTSP时图像失真

时间:2016-12-10 09:12:56

标签: opencv rtsp

我写了一个程序,成功获得了覆盆子pi摄像机视频并在其上应用了一些图像处理,如下所示:

#include <opencv2/opencv.hpp>
VideoCapture vcap;
Mat Frame;
...
vcap.open(0);
while(true)
{
    vcap >> Frame;
    ...
    imshow("Output Window", Frame); 
    waitKey(1);
}

由于树莓相机(勒克斯,快门等)的限制,我买了一台IP摄像机并尝试使用rtsp使用其视频:

vcap.open("rtsp://admin:123456@192.168.1.65");

我收到视频,但它像下图一样扭曲:

enter image description here

如图所示,控制台中存在错误:

error while decding MB n, bytestream m 
cabac decode of gscale diff failed at n m

我在覆盆子上测试了VLC,但它只获得了一个帧,CPU只有100%,甚至降低了分辨率,比特率,fps也没有变化。我可以在覆盆子中查看rtsp视频使用omxplayer。我的电脑上也没有任何问题。

我已经在我的树莓派上安装了Raspbian Jessie。

我还使用GStreamer对FFMPEG进行了重新编译OpenCV,但没有改变任何内容:

cmake ... -D WITH_FFMPEG=OFF -D WITH_GSTREAMER=ON ...

1 个答案:

答案 0 :(得分:2)

编译和安装OpenCV 3.2解决了这个问题,最后我成功地从我的IP摄像头获取了图片。

我测试过的没有任何结果的其他方法包括编译和安装最新的FFMPEG包,同时安装this site建议的所有依赖项。