2014-03-26 62 views
2

参考这个类似的问题How to parse mjpeg http stream from ip camera?我能够读取IP摄像头流,通过使用requests读流与cv2.VideoCapture()

stream = requests.get('http://<user>:<pass>@<addr>:<port>/videostream.cgi', stream=True) 

bytez = '' 
while True: 
    bytez += stream.raw.read(16384) 
    ... 

和它精美的作品,而是想通过使用cv2.VideoCapture()而不是请求来达到那里。

我想变化的方式:

cap = cv2.VideoCapture() 
cap.open('http://<user>:<pass>@<addr>:<port>/videostream.cgi?.mjpg') 

while(True): 
    ret, frame = cap.read() 
    ... 

,但没能得到任何东西,但对异常空架。

如何用cv2.VideoCapture()读取IP摄像机流?

回答

1

我还没试过从VideoCapture访问的IP摄像头,但你的方法 cap = cv2.VideoCapture()视频采集期待代表相机通常0一个数字。

把它置放空的,它不访问任何相机因此异常有关的空架(即使您稍后宣布cap.open(),OPENCV已经试图打开摄像头,并确定为空)

+0

的OpenCV:中结合了装置(0-0):1 ......除非我通过0,是笔记本电脑摄像头。 ifconfig显示相机存在于en7上。 – user391339

0

得到回答传递到自己的cap = cv2.VideoCapture()线用照相机的位置:

cap = cv2.VideoCapture('http://<user>:<pass>@<addr>:<port>/videostream.cgi?.mjpg')