带有 IP 摄像机的 OpenCV 问题

Posted

技术标签:

【中文标题】带有 IP 摄像机的 OpenCV 问题【英文标题】:Problems on OpenCV with IP Camera 【发布时间】:2018-03-10 13:21:27 【问题描述】:

最近我正在使用 OpenCV 完成一个设计,我现在有一个 IP 摄像头,只需在浏览器中输入摄像头的 IP 地址和端口,例如 192.168.1.1:8080,我就可以观看视频. 我已经安装了VS2010并正确完成了设置。我现在可以在我的电脑上处理图片并在我的电脑上捕捉相机的视频。但是当我尝试通过

从 IP 摄像机捕获视频时

VideoCapture cap; cap.open("http://192.168.137.235:8082/index.html") 有一个错误:

打开文件时出错 (../../modules/highgui/src/cap_ffmpeg_impl.hpp:545)

那么我该如何解决这个问题。谁能具体告诉我如何解决这个问题?

【问题讨论】:

index.html 不是视频而是网页..... VideoCapture 不会解析您的 html 并提取视频。您需要找到正确的链接,我建议您使用 rtsp 链接 【参考方案1】:

我已经尝试通过 RTSP 直接从我的 IP 摄像头将视频捕获到基于 OpenCV 的应用程序,正如之前建议的那样。它可以工作,但 ffmpeg 解码器对来自某些摄像机的 RTSP 流非常不稳定。 我找到了下一个解决方案。 有些人喜欢将他们的 PC 屏幕实时流式传输到 youtube。它的标准工具是 XSplit Broadcaster。 这个工具有一个副作用。它能够通过兼容 RTSP 的 IP 摄像头创建虚拟 USB 网络摄像头。 OpenCV 完美地从 USB 网络摄像头捕获视频。 XSplit Broadcaster 的基本许可证是完全免费的。 不幸的是,这个解决方案有一个限制。不依赖网络摄像机的真实分辨率,虚拟网络摄像机的分辨率为 640*480

【讨论】:

谢谢。我已经解决了通过在屏幕上播放视频并捕获它的图片来获取图像。【参考方案2】:

“index.html”页面可能只是您的摄像机的主页,即人们用来导航摄像机和观看直播的页面。 网络摄像机彼此非常不同。如果您的网络摄像机是“onvif”,它应该有一个 rtsp 套接字。例如,我可以使用此路径观看我的网络摄像机:

rtsp://address:554/onvif1

如果你的相机实现了 mjpeg 流,你应该使用正确的路径,例如

http://192.168.137.235:8082/live.html

要知道连接到您的相机的正确方法,有必要知道您的相机是哪一个。

【讨论】:

谢谢。我已经解决了通过在屏幕上播放视频并捕获它的图片来获取图像。也许是因为我的视频数据来自树莓。

以上是关于带有 IP 摄像机的 OpenCV 问题的主要内容,如果未能解决你的问题,请参考以下文章

使用带有OPEN CV的IP摄像头,无需互联网连接(直接连接到PC)

OpenCV 无法流式传输 IP 摄像机

用于 IP 摄像机访问的 OpenCV 2.4.11 中的 opencv_ffmpeg**.dll 错误?

使用 OpenCv 和多线程从 IP 摄像机提供实时视频

C++ 突然阻止使用 VideoCapture 从 IP 摄像机读取帧

Opencv IP 摄像机错误