我使用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;
}
1条答案
按热度按时间hsvhsicv1#
工作很好,我写的mp4文件.