Opencv:从 IP cam 使用 RTSP 时图片失真
Opencv: Distorted picture when using RTSP from IP cam
我写了一个程序成功获取 raspberry pi 摄像头视频并对其应用了一些图像处理,如下所示:
#include <opencv2/opencv.hpp>
VideoCapture vcap;
Mat Frame;
...
vcap.open(0);
while(true)
{
vcap >> Frame;
...
imshow("Output Window", Frame);
waitKey(1);
}
由于 raspberry 摄像头(勒克斯、快门等)的限制,我买了一个 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 也没有改变。 我可以使用 omxplayer 在树莓派中查看 rtsp 视频。我的电脑也没有任何问题。
我已经在我的 raspberry pi 上安装了 Raspbian Jessie。
我还使用 GStreamer 代替 FFMPEG 重新编译了 OpenCV,但没有改变任何东西:
cmake ... -D WITH_FFMPEG=OFF -D WITH_GSTREAMER=ON ...
编译安装OpenCV 3.2解决问题,终于成功从我的网络摄像头中获取图片了。
我测试过但没有任何结果的其他方法包括编译和安装最新的 FFMPEG 包,还安装 this site 建议的所有依赖项。
我写了一个程序成功获取 raspberry pi 摄像头视频并对其应用了一些图像处理,如下所示:
#include <opencv2/opencv.hpp>
VideoCapture vcap;
Mat Frame;
...
vcap.open(0);
while(true)
{
vcap >> Frame;
...
imshow("Output Window", Frame);
waitKey(1);
}
由于 raspberry 摄像头(勒克斯、快门等)的限制,我买了一个 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 也没有改变。 我可以使用 omxplayer 在树莓派中查看 rtsp 视频。我的电脑也没有任何问题。
我已经在我的 raspberry pi 上安装了 Raspbian Jessie。
我还使用 GStreamer 代替 FFMPEG 重新编译了 OpenCV,但没有改变任何东西:
cmake ... -D WITH_FFMPEG=OFF -D WITH_GSTREAMER=ON ...
编译安装OpenCV 3.2解决问题,终于成功从我的网络摄像头中获取图片了。
我测试过但没有任何结果的其他方法包括编译和安装最新的 FFMPEG 包,还安装 this site 建议的所有依赖项。