如何使用OpenCV-C++编写*.mp4视频?
How to write *.mp4 video with OpenCV-C++?
我正在使用OpenCV-C++编写视频*.mp4类型。我可以.avi类型编写视频,但这需要大量存储空间。大约 1Mb/1s,分辨率为 640x480,FPS 为 15。我正在使用iMX6UL-EVK板(Linux(。
我构建没有错误,但没有输出.mp4文件。而在python代码(OpenCV-Python(中,这个板可以用"mp4v"编写.mp4视频。
我尝试使用"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;
}
VideoWriter::fourcc('a', 'v', 'c', '1')
对我来说写MP4文件工作正常。
相关文章:
- 如何在c++中录制具有精确帧时间戳的视频
- 使用FFMPEG将RGB图像序列保存到.mp4时出现问题
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何使用OpenCV-C++编写*.mp4视频?
- 开放 CV 中的动态内存分配,用于视频处理
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- OpenCV QT,显示视频的帧(不使用while循环)
- FFmpeg——使用硬件加速进行视频解码
- 在 openCV 中手动停止视频
- 强制Qt相机视频格式
- 在macOS Mojave上尝试OpenCV视频捕获时"Abort Trap: 6"
- 如何使用Qt多媒体和C++将.mp4视频从OpenGL纹理中保存出来
- 在Ubuntu中使用VideOwriter(OpenCV)保存视频作为MP4时出错
- 如何使用Media Foundation从MP4视频中丢弃任意帧
- 将视频保存在mp4容器中时FPS太高
- 寻求使用 FFmpeg 在 mp4 容器中 h264 编解码器的视频帧.数据包 pts 始终为 0
- 使用Phonon播放mp4视频
- OpenCV无法读取MP4视频
- 如何使用媒体基础生成"moov before mdat" MP4视频文件
- 在C++中使用 DirectShow 解码带有 H.264 流的 MP4 视频