Как написать * .mp4 видео с OpenCV-C ++? - PullRequest
0 голосов
/ 13 февраля 2020

Меня зовут Тоан. В настоящее время я использую OpenCV-C ++ для записи видео типа * .mp4. Я могу написать видео .avi типа, но это займет много места для хранения. Около 1 Мбит / с с разрешением 640x480 и 15 FPS. Я использую плату iMX6UL-EVK (Linux).

Я собрал без ошибок, но нет выходного файла .mp4. И в коде python (OpenCV- Python) эта плата может записывать видео .mp4 с "mp4v".

Я пробовал с "mp4v", "xvid", "divx", "h264", "x264", но не работает. Так что я могу сделать сейчас? Или вы можете показать мне видео другого типа, которые не занимают много места?

Это мой код:

#include "opencv2/opencv.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    cout << "Built with OpenCV " << CV_VERSION << endl;
    Mat image;
    Mat src;
    VideoCapture capture;
    capture.open(2);
    capture >> src;
    bool isColor = (src.type() == CV_8UC3);
    VideoWriter writer;
    int codec = VideoWriter::fourcc('M', 'P', '4', 'V');  
    double fps = 15.0;
    string filename = "live.mp4";
    Size sizeFrame(640,480);
    writer.open(filename, codec, fps, sizeFrame, isColor);
    cout << "Started writing video... " << endl;
    for (int i = 0 ; i < 60 ; i ++)
    {
        capture >> image;
        Mat xframe;
        resize(image,xframe,sizeFrame);
        writer.write(xframe);
        // imshow("Sample", image);
        // char c = (char)waitKey(1);
        // if(c == 27) break;
    }
    cout << "Write complete !" << endl;
    capture.release();
    writer.release();
    return 0;
}

Большое вам спасибо,

Тоан

...