如何从Python访问多个IP摄像机

问题描述 投票:0回答:2

我一直在尝试从 python 代码访问不同的 IP 摄像机,但它能够访问设置在通道一上的摄像机,当我提供 NVR 的 IP 地址时也是如此,因此它可以直接访问摄像机放到第一频道。

我正在分享下面我尝试运行的代码-


import cv2
cap = cv2.VideoCapture('rtsp://Username:password@Ipaddress') #IP address

while(True):
ret, frame = cap.read()
cv2.imshow("RTSP",frame)

if cv2.waitKey(1) & 0xFF == ord('q'): #click q to stop capturing
break
cap.release()
cv2.destroyAllWindows()

我尝试访问连接到 NVR 的不同 IP 摄像机,但我无法做到这一点,只有当我传递 NVR 的 IP 地址时,我只能访问通道 1 中设置的摄像机,当我尝试提供相机的 IP 时,它显示错误。

谁能解答我的疑问吗?

python opencv video-streaming face-recognition
2个回答
0
投票

我猜提供的 RTSP URL 缺少视频流的路径。通常,路径应包括摄像机的特定流和通道信息。 URL 应采用以下格式:

rtsp://Username:password@Ipaddress/Streaming/Channels/ChannelNumber

这是代码的更新版本,具有正确的 RTSP URL 格式和固定缩进:

import cv2

# Replace with your camera's credentials and channel number
username = 'your_username'
password = 'your_password'
ip_address = 'your_ip_address'
channel_number = 1

# Camera stream URL
stream_url = f'rtsp://{username}:{password}@{ip_address}/Streaming/Channels/{channel_number}'

# Open the camera stream
cap = cv2.VideoCapture(stream_url)

while True:
    ret, frame = cap.read()
    if not ret:
        break

    cv2.imshow("RTSP", frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):  # Press 'q' to stop capturing
        break

cap.release()
cv2.destroyAllWindows()

0
投票

rtsp_url = ('rtsp://admin:密码@ip地址:端口/流媒体/频道/号码') 这个网址应该适用于任何 IP 闭路电视摄像机

© www.soinside.com 2019 - 2024. All rights reserved.