opencv c++保存视频为MP4文件
时间: 2023-06-20 18:07:21 浏览: 146
你可以使用OpenCV C++库中的VideoWriter类将视频保存为MP文件。下面是一个简单的示例:
```cpp
#include <opencv2/opencv.hpp>
int main() {
cv::VideoCapture cap(0); // 打开摄像头
if (!.isOpened()) {
std::cerr << "Cannot camera." << std::endl;
return -1;
}
cv::VideoWriter writer;
int codec = cv::VideoWriter::fourcc('M', 'P', '4', 'V');
double fps = 30.0;
cv::Size frameSize(cap.get(cv::CAP_PROP_FRAME_WIDTH), cap.get(cv::CAP_PROP_FRAME_HEIGHT));
std::string filename = "output.mp4";
writer.open(filename, codec, fps, frameSize, true);
if (!writer.isOpened()) {
std::cerr << "Cannot open output file." << std::endl;
return -1;
}
cv::Mat frame;
while (cap.read(frame)) {
writer.write(frame);
cv::imshow("Video", frame);
if (cv::waitKey(1) == 27)
break;
}
cap.release();
writer.release();
return 0;
}
```
在这个示例中,我们首先打开了摄像头(使用设备索引0)。然后,我们创建了一个VideoWriter对象并指定了MP4编解码器“MP4V”,帧率和帧大小。接下来,我们循环读取摄像头的帧并将其写入输出文件。最后,我们释放了摄像头和VideoWriter对象。
请注意,如果你的OpenCV库没有编译支持MP4编解码器,则无法保存为MP4文件。你可以尝试使用其他编解码器,如AVI或MKV。
阅读全文