如何使用 OpenCV 对网络摄像机进行身份验证

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

我正在尝试使用 OpenCV 和 Python 使用 RTSP URI 连接到 IP 摄像机 (Dahua)。我在下面添加了一个示例代码(用户名、密码和 IP 在单独的变量中提供),结果是

[rtsp @ 0x55cc3715c600] method OPTIONS failed: 401 Unauthorized
。使用 VLC,我可以进行连接,但只有在单独的对话框中输入密码后才能进行连接,即使密码已在 URI 中提供。

我该如何继续?

address = f'rtsp://{username}:{password}@{ip}'
cap = cv2.VideoCapture(address)
python opencv authentication rtsp ip-camera
3个回答
3
投票

发现问题,与密码有特殊字符(%)有关,该字符应该是百分比编码(%25)。


0
投票

如果您的密码包含

!"#$%&'()*+,-./:;<=>?@[\]^_{|}~
之类的字符,那么问题可能出在
cv2.VideoCapture()

您可以尝试使用imutils库来解决这个问题。这对我有用。

from imutils.video import VideoStream
cap = VideoStream(video_src).start()
frame = cap.read()

0
投票

我也遇到了同样的问题,因为我的密码中有问号(?),所以我只是将其替换为编码值%3F。有效!

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