使用X264丢失使用OpenCV记录视频的帧

时间:2016-09-08 09:25:20

标签: opencv

我有一些使用openCV录制视频的代码。我使用MJPG编解码器时代码工作正常,但它会产生非常大的视频。

我想制作较小的视频,因此我已将值X264传递给CV_FOURCC('M','J','P','G')。这似乎有效,我没有得到任何警告,但我注意到有帧缺失。

我以每秒10帧的速度录制了20秒的视频,然后我用mplayer播放,视频只持续了2秒。

以下是我正在使用的代码的内容:


    VideoCapture cap(dev); // open the default camera
    cap.set(CV_CAP_PROP_FPS, fps);
    cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
    cap.set(CV_CAP_PROP_FRAME_HEIGHT, 1024);
    if(!cap.isOpened())  // check if we succeeded
        return -1;

    Mat testFrame;
    cap >> testFrame;
    cap >> testFrame;
    cap >> testFrame;


    Size outSize = Size(testFrame.cols, testFrame.rows);
    //VideoWriter writer(filename, CV_FOURCC('M','J','P','G'), fps, outSize, true); //Works
    VideoWriter writer(filename, CV_FOURCC('X','2','6','4'), fps, outSize, true); //Missing frames
    int count = 0;
    for(; ;)
    {
        Mat frame;
        cap >> frame; // get a new frame from camera

        writer.write(frame);

    }

我还应该补充说,这是在Odroid C2主板上的Ubuntu Mate 16.04 64位上运行。

0 个答案:

没有答案