如何在 OpenCV 3.1.0 中设置网络摄像头编解码器?

How to set webcam codec in OpenCV 3.1.0?

我的网络摄像头在 OpenCV Python 中使用未压缩的 YUYV 编解码器时遇到问题,这使得我的帧速率非常糟糕。我想将编解码器设置为 MJPG,但我似乎不知道如何设置。这是我尝试过的(以及它的变体)

import cv2 #Opencv 3.1.0
import numpy as np
vid = cv2.VideoCapture(0)
vid.set(6, cv2.CV_FOURCC('M','J', 'P', 'G'))#Should set the codec, but it doesn't

while True:
    _, img = vid.read()

    cv2.imshow('image', img)

    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break

vid.release()
cv2.destroyAllWindows()

当我 运行 它时,我得到 cv2 has no attribute to CV_FOURCC。 I have been using this as a reference,但它并没有真正解释我在 vid.set() 中输入 6 后应该传递的内容。我有 cv2.CV_FOURCC,但我猜这就是它想要的。任何帮助将不胜感激!

试试这个 vid.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))