2016-11-29 233 views
0

我有一个通过rtsp协议流式传输的远程摄像头,并且试图在OpenCV 2.13.1中使用python和以下代码访问它。使用OpenCV捕获rtsp摄像头python

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") 

,但我这样做时,我得到这个错误:

`AttributeError: 'builtin_function_or_method' object has no attribute` 'open' 

我确实搜查过很多关于这个问题,但无法得到适合我的想法。任何帮助,将不胜感激。

+0

[例如具有RTSP流(https://github.com/furas/my-python-codes/blob/master/cv2/display-stream/example-main .py)在Python 2上适用于我。试试这些流 - 也许这是一些编解码器的问题。 – furas

+0

不幸的是,它没有为我工作,虽然我也使用python 2 – Nik391

+0

所以也许你有一些编解码器或其他的问题。我在Python 3中遇到了cv2的问题 - 它不会从相机读取流事件:/我会尝试从源代码安装它,也许它会改变某些内容。 http://www.pyimagesearch.com/tag/install/ – furas

回答

2
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) 
+0

有没有一个库可以在浏览器中查看这些框架? (例如,使用websocket将其发送给客户端,然后使用一些JS库对其进行解码?) – andrei

+0

有一个[jsmpeg](https://github.com/phoboslab/jsmpeg)用于查看浏览器上的实时流。但首先,您需要ffmpeg将流发送到中继服务器。 – Ryan