我写了一个程序,成功获得了覆盆子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");
我收到视频,但它像下图一样扭曲:
如图所示,控制台中存在错误:
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 ...
答案 0 :(得分:2)
编译和安装OpenCV 3.2解决了这个问题,最后我成功地从我的IP摄像头获取了图片。
我测试过的没有任何结果的其他方法包括编译和安装最新的FFMPEG包,同时安装this site建议的所有依赖项。