使用 H264 编解码器的 OpenCV 视频采集

Ash*_*win 4 opencv codec

我在我的项目中使用新的罗技相机 c920 进行对象识别。
我的相机可以支持H264编解码器并可以显示H264高清输出。
但是我如何在下面的代码中将 CODEC 类型设置为 H264,以使用 OpenCV 指令将其输出为 H264 解码流。

我使用以下逻辑捕获视频:参考:此链接

#include "opencv2/opencv.hpp"

using namespace cv;

int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened())  // check if we succeeded
        return -1;

    for(;;)
    {
        Mat frame;
        cap >> frame; // get a new frame from camera
        imshow("display", frame);
        if(waitKey(30) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Pau*_*ire 5

通过设置 fourCC 属性,您应该告诉 VideoCapture 您的源是 h.264。openCV 的所有文档都说你会得到解码后的 BGR 数据。

cap.set(CV_CAP_PROP_FOURCC, CV_FOURCC('H', '2', '6', '4'));
Run Code Online (Sandbox Code Playgroud)