知识点:
1、VideoCapture 视频文件读取、摄像头读取、视频流读取
2、获取视频的相关属性
- CAP_PROP_FRAME_HEIGHT    // 高
- CAP_PROP_FRAME_WIDTH    // 宽
- CAP_PROP_FRAME_COUNT    // 总帧数
- CAP_PROP_FPS    // 帧率
3、VideoWriter 视频写出、文件保存
注意事项:
OpenCV 不支持音频编码与解码保存,不是一个音视频处理的库!主要是分析与解析视频内容。保存文件最大支持单个文件为2G。
C++代码
#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;void day12() {VideoCapture capture;// 打开本地的视频文件//capture.open("G:\\opencvTest\\video.mp4");// 打开摄像头,0是电脑自带的摄像头,序号依次递增为外接摄像头capture.open(1);if (!capture.isOpened()) {cout << "could not open this capture.." << endl;}int width = static_cast<int>(capture.get(CAP_PROP_FRAME_WIDTH));int height = static_cast<int>(capture.get(CAP_PROP_FRAME_HEIGHT));int count = static_cast<int>(capture.get(CAP_PROP_FRAME_COUNT));int fps = static_cast<int>(capture.get(CAP_PROP_FPS));cout << "分辨率:(" << width << "x" << height << ") " << endl;cout << "总帧数:" << count << endl;cout << "帧率:" << fps << endl;int type = static_cast<int>(capture.get(CAP_PROP_FOURCC));VideoWriter writer("G:\\opencvTest\\video.mp4", type, fps, Size(width, height), true);Mat frame;while (capture.read(frame)) {imshow("capture_video", frame);writer.write(frame);// 监听键盘事件,按Esc退出char c = waitKey(50);if (c == 27) {break;}}// 释放资源writer.release();capture.release();}
