当前位置: 首页 > 面试题库 >

在Python OpenCV中访问IP摄像机

巴帅
2023-03-14
问题内容

如何访问我的IP摄像机流?

用于显示标准网络摄像头流的代码是

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while(True):
    ret, frame = cap.read()
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

除了IP摄像机,我该如何做同样的事情?

我的系统:

  • Python 2.7.14
  • OpenCV 2.4.9
  • Teledyne Dalsa Genie Nano XL相机

帮助将不胜感激

您可以将视频捕获对象用作

camera = cv2.VideoCapture("IP:PORT/video")

问题答案:

我回答了我自己的问题,报告了什么似乎是Python OpenCV中访问IP摄像机的 最全面的 总体过程。

给定一个IP摄像机:

  • 查找您的相机IP地址
  • 查找port访问IP地址的位置
  • 查找protocol摄像机提供商指定的(HTTP / RTSP等)

然后,如果您的相机受到保护,请继续进行以下操作:

  • 您的 username
  • 您的 password

然后使用您的数据运行以下脚本:

"""Access IP Camera in Python OpenCV"""

import cv2

stream = cv2.VideoCapture('protocol://IP:port/1')

# Use the next line if your camera has a username and password
# stream = cv2.VideoCapture('protocol://username:password@IP:port/1')

while True:

    r, f = stream.read()
    cv2.imshow('IP Camera stream',f)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cv2.destroyAllWindows()

注意 :在我最初的问题中,我指定要与 Teledyne Dalsa Genie Nano XL相机一起使用
。不幸的是,对于这种摄像机,这种访问IP摄像机视频流的常规方法不起作用,必须使用 Sapera SDK 才能从设备抓取帧。



 类似资料:
  • 我想访问从ip摄像机在Android应用的直播流。我使用的是D-Link DCS-5020L相机。我在互联网上搜索了很多解决方案,但什么也找不到。我想知道要设置rtsp、http或任何其他协议。以及如何为流创建url。我正在使用android应用程序中的videoview来显示视频。我也尝试播放一些公共ip摄像机源,但它给出了相同的错误

  • 我想在WebRTC上使用IP摄像机。然而,webrtc似乎只支持网络摄像头。所以我尝试将IP摄像机的流转换为虚拟网络摄像机。 我找到了像IP摄像机适配器这样的软件,但它们不太好用(每秒2-3帧,延迟2秒),它们只在Windows上工作,我更喜欢使用Linux(如果可能的话)。 我尝试FFMPEG/AVCONV: > 首先,我使用v4l2loopback创建了一个虚拟设备(命令为:)。虚拟设备会被检

  • 我是新的Android 6.0代码,请提供以下代码的解决方案: 注意:适用于打开库时

  • 问题内容: 我有一个针对移动设备进行了优化的Web应用程序,可用于访问网络摄像头和麦克风资源。 我要将这个应用包装为A,因为我想提供本机应用体验。我知道,iOS不允许通过浏览器访问摄像机- 但有什么办法来获得权限的网络摄像头/麦克风与本机代码(沿着封装)和饲料这对Web应用程序-也许在某种程度上指向一个本地流源? 问题答案: 是的,看看cordova-plugin-iosrtc和cordova-p

  • 我有这个IP摄像机Nexus CCTV 235FW。我再也连接不上它了。我能重置它吗?我想这是在我修改了管理员密码之后发生的。它是连接的以为WiFi,但我也试过用电缆,没有任何运气。 我也试着用搜索工具搜索相机,但还是没有运气。 另一件事,我甚至看不到摄像头在路由器的列表上连接的单位。 希望任何人能帮助我。

  • 我在Ubuntu16.0.4上安装了一个新的Opencv,我编写了一个程序来获取相机流并存储一些帧。它“没有”问题。但不能通过Systemd工作。systemd单元处于活动状态(不要失败),但目标文件夹中没有帧存储。 我一步一步地寻找问题,我发现代码挂在打开摄像头流上。那就是:帽子。打开(“MyIpCameraAddress”) 我试着通过bash脚本而不是脚本来运行代码。但问题依然存在 说明=a