opencv 硬编码 保存视频文件
时间: 2023-10-11 20:10:06 浏览: 48
要使用 OpenCV 硬编码保存视频文件,你需要先安装 OpenCV 库和相应的编解码器。然后,你可以按照以下步骤进行操作:
1. 创建一个 VideoWriter 对象,指定输出文件名、编解码器、帧率和视频大小:
```cpp
cv::VideoWriter writer("output.avi", cv::VideoWriter::fourcc('M','J','P','G'), 25, cv::Size(640, 480));
```
2. 从摄像头或视频文件中读取每一帧图像:
```cpp
cv::Mat frame;
cv::VideoCapture cap(0); // 0 表示第一个摄像头
while (cap.read(frame)) {
// 处理每一帧图像
}
```
3. 将每一帧图像写入输出文件:
```cpp
writer.write(frame);
```
4. 在处理完所有帧后,释放 VideoCapture 和 VideoWriter 对象:
```cpp
cap.release();
writer.release();
```
完整的代码示例:
```cpp
#include <opencv2/opencv.hpp>
int main() {
cv::VideoWriter writer("output.avi", cv::VideoWriter::fourcc('M','J','P','G'), 25, cv::Size(640, 480));
cv::VideoCapture cap(0); // 0 表示第一个摄像头
if (!cap.isOpened()) {
std::cerr << "Failed to open camera" << std::endl;
return 1;
}
cv::Mat frame;
while (cap.read(frame)) {
cv::imshow("frame", frame);
writer.write(frame);
char key = cv::waitKey(10);
if (key == 27) break; // 按下 ESC 键退出
}
cap.release();
writer.release();
cv::destroyAllWindows();
return 0;
}
```
注意:不同的系统和编解码器可能需要不同的 fourcc 参数值。你可以参考 OpenCV 文档或搜索相关资料获取适合你系统的 fourcc 值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)