[英]Reading stream from IP camera with cv2.VideoCapture()
參考這個類似的問題如何從ip camera解析mjpeg http流? 我能夠通過使用requests
從IP攝像頭讀取流:
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攝像機流?
我還沒有嘗試從VideoCapture訪問IP攝像頭,但是在你的方法cap = cv2.VideoCapture()
,視頻捕獲期望一個代表攝像頭的數字通常為0
。
通過將其留空,它不會訪問任何攝像頭,因此關於空幀的異常(即使稍后你聲明了cap.open()
,openCV已經嘗試打開攝像頭並確定它是空的)
將C:\\ OpenCV \\ 3rdparty \\ ffmpeg \\添加到Windows PATH環境變量或將opencv_ffmpeg.dll從該目錄復制到C:\\ Python27。 這個問題在OpenCV 2.4 VideoCapture中無法在Windows上運行
將相機的位置傳遞到cap = cv2.VideoCapture()
行:
cap = cv2.VideoCapture('http://<user>:<pass>@<addr>:<port>/videostream.cgi?.mjpg')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.