You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python访问多台IP摄像头?NVR通道访问问题求助

解决通过IP摄像头自身IP访问NVR连接摄像头的问题

核心问题分析

你当前只能通过NVR IP访问通道1,直接用摄像头IP报错,主要原因是RTSP流路径不匹配或摄像头独立访问权限未开启,以下是具体解决步骤:


1. 确认摄像头的RTSP流格式

不同品牌的IP摄像头/NVR,RTSP流的URI格式差异很大,举几个常见品牌的示例:

  • 海康威视:rtsp://用户名:密码@摄像头IP:554/Streaming/Channels/101(101代表主码流,102是子码流)
  • 大华:rtsp://用户名:密码@摄像头IP:554/cam/realmonitor?channel=1&subtype=0
  • 宇视:rtsp://用户名:密码@摄像头IP:554/live1.sdp

你需要查阅对应品牌的官方文档,找到摄像头专属的RTSP路径格式,替换到代码中。

2. 开启摄像头的独立访问权限

部分NVR下挂的摄像头默认仅允许通过NVR转发视频流,无法直接访问。需要:

  • 登录摄像头的Web管理界面(输入摄像头自身IP到浏览器)
  • 在「网络设置」或「流媒体设置」中,开启独立RTSP服务,确认端口(默认554)未被占用
  • 确保摄像头的用户名/密码权限允许RTSP访问

3. 先通过VLC验证RTSP流可用性

在写代码前,先用VLC播放器测试摄像头的RTSP地址:

  • 打开VLC → 媒体 → 打开网络串流 → 输入RTSP地址
    如果VLC无法播放,说明地址或权限存在问题,先解决这一步再调试代码。

修改后的测试代码

import cv2

# 替换为你的摄像头正确RTSP地址
rtsp_url = 'rtsp://YourUsername:YourPassword@CameraIP:554/正确的流路径'
cap = cv2.VideoCapture(rtsp_url)

# 先校验流是否成功打开
if not cap.isOpened():
    print("错误:无法打开RTSP流,请检查地址、权限或网络")
    exit()

while True:
    ret, frame = cap.read()
    # 校验帧是否正常获取
    if not ret:
        print("警告:获取视频帧失败,流可能中断")
        break
    cv2.imshow("Camera Feed", frame)

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

cap.release()
cv2.destroyAllWindows()

额外注意事项

  • 如果用户名/密码包含特殊字符(如@、#、&),需要进行URL编码:@→%40,#→%23,&→%26
  • 确保运行代码的设备与摄像头在同一局域网,若需外网访问,需在路由器端给摄像头做端口映射(映射554端口)

内容的提问来源于stack exchange,提问作者Randhir Singh Mehra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 17:22:38