使用OpenCV python捕获rtsp相机

时间:2016-11-29 21:12:59

标签: python opencv video-capture

我有一个通过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")

我确实对这个问题进行了很多搜索,但无法得到适合我的想法。任何帮助将不胜感激。

2 个答案:

答案 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