gpt4 book ai didi

python - 使用 python openCV 从 IP 摄像机流式传输问题

转载 作者:太空宇宙 更新时间:2023-11-03 21:41:03 33 4
gpt4 key购买 nike

在问这个问题之前,我在过去 2 天里在网站上搜索了一个类似的问题,但找不到专门针对我的问题。

我有一个 IP 摄像机,其 IP 地址、用户名等已被授予完全访问权限。我实际上可以通过将 IP 写入 VLC Player >> Open Network Stream >> Network 来打开流并观看直播。

但是我想要的是能够用python看同一个直播。这是我的代码:

import urllib.request
import cv2
import numpy

url = 'rtsp://10.10.111.200/profile2/media.smp'
while True:
resp = urllib.request.urlopen(url)
b_array = bytearray(resp.read())
img_np = numpy.array(b_array, dtype=numpy.uint8)
img = cv2.imdecode(img_np, -1)
cv2.imshow('test', img)
if cv2.waitkey(10) == ord('q'):
exit(0)

当我运行这段代码时,出现以下错误:

urllib.error.URLError: .

然后我想也许我应该在 url 中将 rtsp 更改为 http,但是当我这样做时,它会给我以下错误,

cv2.error: OpenCV(3.4.3) D:\Build\OpenCV\opencv-3.4.3\modules\imgcodecs\src\loadsave.cpp:737: error: (-215:Assertion failed) !buf.empty() && buf.isContinuous() in function 'cv::imdecode_' in the line img = cv2.imdecode(img_np, -1)

我认为这是因为没有来自(自从我更改为 http 后很可能是错误的)来源的数据。

我使用的是 Windows 10 64 位。

最佳答案

您用于读取数据流的库不支持 rtsp 协议(protocol),因此它永远不会工作,也许您可​​以使用以下代替:

import cv2

capture_video = cv2.VideoCapture('rtsp://10.10.111.200/profile2/media.smp')
while(True):
ret, img = capture_video.read()
cv2.imshow('Test', img)
if cv2.waitKey(10) == ord('q'):
exit(0)

关于python - 使用 python openCV 从 IP 摄像机流式传输问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52603515/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com