最近通过OPENCV3.2.0加载海康摄像头,实现后续的摄像头画面拼接。但是发现拷贝了所有的opencv2的dll文件,仍然无法成功加载rtsp视频流。
假设是视频流无法获取,通过VLC工具拉流,可以成功。效果如下
后来试了很多其他办法,感觉不是代码的问题,然后继续搜索。
找到了遇到同样问题的同学,https://blog.csdn.net/xiaohongmao663832/article/details/82348333。问题原因是缺少ffmpeg库,这种错误很难发现,通过CMAKE编译出的install文件,竟然不全,需要从编译目录拷贝opencv_ffmpeg*_64.dll
文件到程序运行目录。
这总应该是平台BUG。
VideoCapture cap;
cap.open("rtsp://admin:Admin12345@192.168.1.21:554/h264/ch1/sub/av_stream");
Mat Camera_CImg;
Mat Camera_GImg;
cap.set(CV_CAP_PROP_FRAME_HEIGHT, 640);
cap.set(CV_CAP_PROP_FRAME_WIDTH, 800);
if (!cap.isOpened())
return 1024;
while (1)
{
cap >> Camera_CImg;
if (Camera_CImg.empty())
break;
cvtColor(Camera_CImg, Camera_GImg, CV_RGB2GRAY);
imshow("input", Camera_CImg);
if (cvWaitKey(30) == 'q')
break;
}
getchar();
目前无法加载视频的问题解决了 ,最终效果如下
你没看错,视频是可以加载了,但是总是报错。接下来,尝试解决报错的问题。