opencv2 无法加载RTSP的问题

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

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

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

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
要实现Python OpenCV YOLO读取RTMP或RTSP并分析后在网页上实现视频预览,可以按照以下步骤进行: 1. 导入必要的库:使用Python首先需要导入OpenCV和YOLO相关的库,如cv2、numpy等。 2. 设置RTMP或RTSP源:使用OpenCV的VideoCapture函数来设置RTMP或RTSP源,例如`cap = cv2.VideoCapture('rtmp://xx.xx.xxx.xxx/live/stream')`。 3. YOLO模型:使用OpenCVYOLO模型及其配置文件和权重文件,例如`net = cv2.dnn.readNetFromDarknet('yolov3.cfg', 'yolov3.weights')`。 4. 分析视频帧:使用OpenCV的while循环来读取视频帧,然后对每一帧进行YOLO目标检测处理,例如: ```python while cap.isOpened(): ret, frame = cap.read() if not ret: break # 对当前帧进行YOLO目标检测处理 ... ``` 5. 显示结果:根据YOLO的检测结果在视频帧上绘制边界框和标签,然后使用OpenCV的imshow函数显示处理后的帧,例如: ```python cv2.imshow('YOLO Result', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break ``` 6. 实现网页预览:将每帧处理后的图像编码成JPEG格式,使用Flask等Web框架将图像显示在网页上,例如: ```python @app.route('/') def video_feed(): return Response(gen_frames(), mimetype='multipart/x-mixed-replace; boundary=frame') def gen_frames(): while True: success, frame = cap.read() if not success: break # 对当前帧进行YOLO目标检测处理 ... # 将处理后的帧编码成JPEG格式 ret, buffer = cv2.imencode('.jpg', frame) frame = buffer.tobytes() yield (b'--frame\r\n' b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n') ``` 通过上述步骤,可以在网页上实现视频预览,并使用YOLO进行视频帧的目标检测分析。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老朱自强不息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值