最近通过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();

目前无法加载视频的问题解决了 ,最终效果如下

你没看错,视频是可以加载了,但是总是报错。接下来,尝试解决报错的问题。 

 

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐