簡體   English   中英

使用cv2.VideoCapture()從IP攝像機讀取流

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM