python - 使用 cv2.VideoCapture() 从 IP 摄像机读取流

标签 python opencv

引用这个类似的问题How to parse mjpeg http stream from ip camera?通过使用 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()读取网络摄像头流?

最佳答案

cap = cv2.VideoCapture() 行中传递摄像头的位置:

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

关于python - 使用 cv2.VideoCapture() 从 IP 摄像机读取流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22654948/

相关文章:

python - pd.read_json() 到 pandas 中的数据框

python - 像在 Jupyter 中一样从函数打印数据框

c++ - 当视差图为 CV_8U 类型时访问 OpenCV 中的视差值?

python - 运行函数时显示 ttk 进度条(python)

python - python中的增量postgresql数据转储

python - 使用 Django 存款金额

python - 如何使用opencv python(hough Circles)找到给定图像中的圆?

python - 图像识别——寻找相似图像

python - OpenCV/Python : Mask on fftimage - Why do we need two channels?

c++ - OpenCV 从一组点绘制一条线