我有一个通过rtsp协议流式传输的远程摄像头,并尝试使用python和以下代码在OpenCV 2.13.1中访问它。
is_detected
然而,当我这样做时,我收到以下警告
camera = cv2.VideoCapture("rtsp://admin:<port>@<ip>/xyz/video.smp")
我也试过这样做:
WARNING: Couldn't read movie file rtsp://admin:<port>@<ip>/xyz/video.smp
但是当我这样做时,我收到了这个错误:
camera = cv2.VideoCapture.open("rtsp://admin:<port>@<ip>/xyz/video.smp")
我确实对这个问题进行了很多搜索,但无法得到适合我的想法。任何帮助将不胜感激。
答案 0 :(得分:11)
来自RTSP stream and OpenCV (Python)的信用:
vcap = cv.VideoCapture("rtsp://192.168.1.2:8080/out.h264")
while(1):
ret, frame = vcap.read()
cv.imshow('VIDEO', frame)
cv.waitKey(1)
答案 1 :(得分:0)
我遇到了同样的问题。我的 python 脚本读取 rtsp 流只在某些计算机上工作了几次,我不知道为什么。 我的解决方案是初始化来自相机的流并使用 VLC 创建一个新的 http 流。然后,我的 opencv 脚本从 VLC 创建的流“http://127.0.0.1”读取。这不是最好的溶液,但对我有用。
我在 .bat 文件中创建了一个脚本,以保持简单地使用正确的配置初始化 VLC。执行此操作的命令是:
"C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" rtsp://10.0.0.1 input_stream --ipv4-timeout=600000 --sout #transcode{vcodec=h264,acodec=mpga,ab=128,channels=2,samplerate=44100,scodec=none}:http{mux=ffmpeg{mux=flv},dst=:8080/} :no-sout-all :sout-keep