我想要使用rtsp从IP摄像头流传输视频。但我有个问题。我已经安装了必备设备。另外,我的rtsp链接可以在Vlc播放器上工作。但当我在编辑器中尝试并运行它时,它显示找不到摄像头。
这是我的代码。
import cv2
import numpy as np
cap = cv2.VideoCapture("rtsp://admin:admin@xxx.xxx.xxx.xxx:xxx/media/video1/video")
while True:
ret, img = cap.read()
if ret == True:
cv2.imshow('video output', img)
k = cv2.waitKey(10)& 0xff
if k == 27:
break
cap.release()
cv2.destroyAllWindows()发布于 2017-07-05 00:20:32
请务必检查您的opencv安装是否具有打开视频的功能。对于此尝试
cap=cv2.VideoCapture(r"path/to/video/file")
ret,img=cap.read()
print ret如果ret是True,那么您的opencv安装具有处理视频所需的编解码器,然后确认RTSP地址是正确的。
如果ret为False,则使用steps here重新安装opencv。我建议从源代码构建opencv。但是先尝试一下预构建库。
发布于 2019-10-22 09:51:07
通过设置以下环境变量,我能够解决在Python中使用OpenCV (使用FFMPEG构建)打开RTSP流的问题:
import os
os.environ["OPENCV_FFMPEG_CAPTURE_OPTIONS"] = "rtsp_transport;udp"FFMPEG默认使用TCP传输,但某些RTSP源是UDP,因此这将为FFMPEG设置正确的模式。
然后使用:
cv2.VideoCapture(<stream URI>, cv2.CAP_FFMPEG)
ret, frame = cap.read()
while ret:
cv2.imshow('frame', frame)
# do other processing on frame...
ret, frame = cap.read()
if (cv2.waitKey(1) & 0xFF == ord('q')):
break
cap.release()
cv2.destroyAllWindows()像往常一样。
https://stackoverflow.com/questions/44901028
复制相似问题