Opencv4.0学习记录(Day22 视频文件处理和保存)

本文介绍如何通过C++的OpenCV库读取视频文件,测量FPS,并探讨视频编码格式的选择,确保保存后的视频大小一致性。详细讲解了SD、HD、UHD不同清晰度视频的处理和VideoWriter的使用实例。

视频处理与保存

        视频的属性,SD(标清),HD(高清),UHD(超清),蓝光。如何读取视频文件,以及读取视频文件的属性,衡量视频处理指标:FPS。保存视频时的编码格式。保存视频的实际size和create的size大小保持一致。

void QuickDemo::video_demo(Mat &image) {
	//VideoCapture capture(0);//调用摄像头
	VideoCapture capture("E:/images/01.mp4");//调用视频文件
	int frame_width = capture.get(CAP_PROP_FRAME_WIDTH);//获得视频宽度
	int frame_height = capture.get(CAP_PROP_FRAME_HEIGHT);//获得视频高度
	int count = capture.get(CAP_PROP_FRAME_COUNT);//总的帧率
	double fps = capture.get(CAP_PROP_FPS);//每秒的帧率
	cout << "frame width:"  << frame_width << endl;
	cout << "frame height:"  << frame_height << endl;
	cout << "Number of Frames:"  << count << endl;
	cout << "FPS:"  << fps << endl;
	VideoWriter writer("D:/test.mp4", capture.get(CAP_PROP_FOURCC), fps, Size(frame_width, frame_height), true);//保存
	Mat frame;
	while (true)
	{
		capture.read(frame);//读取文件后存储在frame中
		flip(frame,frame,1);//翻转函数
		if (frame.empty()) {//如果视频文件为空退出
			break;
		}
		colorSpace_Demo(frame);//色彩空间转换函数
		writer.write(frame);//视频保存
		imshow("frame",frame);
		
		int c = waitKey(1);//延时
		if (c == 27) {
			break;//退出
		}
	}
	//release
	capture.release();//释放空间

}

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值