有时候,如果你在OpenCV中做图像处理的时候,如果图像处理比较耗时,就导致存在VideoCapture缓存区的图像队列越积越多。 你就会发现延时好高啊,过了半天画面才更新,实际的画面与VideoCapture的实际画面时差越拉越大。
    这个问题,可以通过缩小缓冲区尺寸来解决。
    cap.set 设定VideoCapture的各种属性,这里指定缓冲区的尺寸为1:

    1. cap.set(cv2.CAP_PROP_BUFFERSIZE,1)

    完整一些的代码片段:

    1. # 摄像头的IP地址
    2. # http://用户名:密码@IP地址:端口/
    3. ip_camera_url = 'http://admin:admin@192.168.2.237:8081/'
    4. # 创建一个VideoCapture
    5. cap = cv2.VideoCapture(ip_camera_url)
    6. # 设置缓存区的大小 !!!
    7. cap.set(cv2.CAP_PROP_BUFFERSIZE,1)



    ref:http://www.1zlab.com/wiki/python-opencv-tutorial/opencv-make-phone-as-ip-camera/