用H.265方式压缩opencv输出的视频 cpp代码
时间: 2024-05-14 21:13:21 浏览: 164
感谢您的提问!关于您的问题,我可以给出一个参考代码:
```cpp
#include <opencv2/opencv.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <string>
#include <sstream>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
// 打开视频文件
VideoCapture cap(argv[1]);
//获取视频的编码
int codec = cv::VideoWriter::fourcc('H', '2', '6', '5');
//获取视频帧率
double fps = cap.get(cv::CAP_PROP_FPS);
// 获取视频宽高
int width = (int)cap.get(cv::CAP_PROP_FRAME_WIDTH);
int height = (int)cap.get(cv::CAP_PROP_FRAME_HEIGHT);
//创建一个视频写入对象
VideoWriter writer("output.mp4", codec, fps, Size(width,height));
Mat frame;
while (cap.read(frame))
{
// 压缩视频帧
Mat dst;
resize(frame, dst, Size(width/2, height/2));
writer << dst;
//显示视频帧
imshow("compressed video", dst);
if (waitKey(1) == 27) break; //ESC
}
// 释放资源
cap.release();
writer.release();
destroyAllWindows();
return 0;
}
```
希望这个代码能够帮到您,如果还有其他问题请继续提问!
阅读全文