videowriter保存mp4 C++ 这个
时间: 2024-01-09 19:05:55 浏览: 35
你可以使用OpenCV中的VideoWriter类来保存mp4文件。下面是一个简单的示例代码:
```cpp
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
// 打开相机
VideoCapture cap(0);
if (!cap.isOpened()) {
return -1;
}
// 设置保存文件名和编解码器
String filename = "output.mp4";
int fourcc = VideoWriter::fourcc('m', 'p', '4', 'v');
// 获取相机帧的尺寸
int width = cap.get(CAP_PROP_FRAME_WIDTH);
int height = cap.get(CAP_PROP_FRAME_HEIGHT);
// 创建VideoWriter对象
VideoWriter writer(filename, fourcc, 30, Size(width, height));
// 循环获取相机帧并保存
Mat frame;
while (true) {
cap >> frame;
if (frame.empty()) {
break;
}
writer.write(frame);
imshow("frame", frame);
if (waitKey(1) == 'q') {
break;
}
}
// 释放资源
cap.release();
writer.release();
destroyAllWindows();
return 0;
}
```
在这个示例中,我们首先打开摄像头,并设置要保存的文件名和编解码器。然后,我们获取相机帧的尺寸,并创建一个VideoWriter对象来保存帧。在循环中,我们不断获取相机帧并将其写入VideoWriter对象中。最后,我们释放资源并关闭窗口。