如何使用OpenCV-C++编写 *.mp4视频?

e3bfsja2  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(219)

我使用OpenCV-C++来编写视频 *.mp4类型。我可以写视频.avi类型,但它需要大量的存储.约1 Mb/1 s,分辨率为640 x480,FPS为15。我使用的是iMX 6 UL-EVK板(Linux)。

我构建没有错误,但没有输出.mp4文件。在python代码(OpenCV-Python)中,该板可以使用“mp 4v”编写.mp4视频。

我尝试了“mp 4v”,“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;
}
hsvhsicv

hsvhsicv1#

VideoWriter::fourcc('a', 'v', 'c', '1')

工作很好,我写的mp4文件.

相关问题