C++ 摄像头调用录制视频,无法停止录制问题记录

代码如下:

// videoCaptureDemo.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。

#include <iostream>

#include <opencv2\opencv.hpp>  
using namespace cv;
using namespace std;

int main()
{
	//视频保存位置
	string outputVideoPath = "..\\images\\test.avi";

	//打开摄像头
	VideoCapture capture0(0);

	VideoWriter outputVideo;
	//获取当前摄像头的视频信息
	cv::Size S = cv::Size((int)capture0.get(CV_CAP_PROP_FRAME_WIDTH),
		(int)capture0.get(CV_CAP_PROP_FRAME_HEIGHT));
	//打开视频路劲,设置基本信息 open函数中你参数跟上面给出的VideoWriter函数是一样的
	outputVideo.open(outputVideoPath, -1, 30.0, S, true);
	//CV_FOURCC('P','I','M','1')

	if (!outputVideo.isOpened()) {
		cout << "fail to open!" << endl;
		return -1;
	}


	cv::Mat frameImage;
	int count = 0;

	while (true) {
		//读取当前帧
		capture0 >> frameImage;

		if (frameImage.empty()) break;

		++count;
		//输出当前帧
		cv::imshow("output", frameImage);
		//保存当前帧
		outputVideo << frameImage;

		if (waitKey(1) == 27) break;
	}
	capture0.release();
	outputVideo.release();
	std::cout << "TotalFrame: " << count << std::endl;
}

注意:

1.打开vs,新建一个项目,文件--新建--项目--控制台应用项目,修改名称为videoCaptureDemo.点击确定。

2.在当前工程文件下新建image文件夹。

3.将上述代码复制,替换videoCaptureDemo.cpp中的原始代码。

4.点击属性管理器,将opencv的库在opencv中进行配置。详见opencv如何导入vs。参考https://blog.csdn.net/qq_41175905/article/details/80560429

5.ctrl+F5,运行demo

6.出现视频压缩窗口,选择全帧非压缩,点击“确定”,出现“output”窗口,开始录制视频。

7.鼠标点击"output"窗口,然后按“esc”,结束录制。

注意一定要先点击“output”窗口,让output窗口处于激活状态,而不是点击调试工作台命令行,否则会出现无法停止录制的问题。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
实时视频捕获多摄像头是一种技术方法,可以同时获取多个摄像头实时拍摄到的视频图像。这种技术广泛应用于监控系统、视频会议和虚拟现实等领域。 实时视频捕获多摄像头的实现步骤如下:首先,需要连接多个摄像头到计算机或者视频处理设备上,并确保每个摄像头都正常工作。然后,通过视频采集卡或者USB接口将摄像头与计算机相连。接下来,使用相应的软件或者开发工具,可以同时调用多个摄像头的接口,实时获取每个摄像头拍摄到的视频数据。最后,对这些视频数据进行处理、存储或者实时传输。 实时视频捕获多摄像头的好处是增加了录制的视角和范围,可以提供更加全面的监控和观测效果。例如在监控系统中,可以同时监控多个地点,减少盲区的存在;在视频会议中,可以提供更加生动、立体的沟通方式;在虚拟现实中,可以实现更加真实和沉浸式的体验。 当然,实时视频捕获多摄像头也存在一些挑战和技术难点。首先,需要确保每个摄像头的数据传输稳定和同步性,否则会导致图像质量下降或者卡顿现象。其次,需要兼容多种不同品牌和型号的摄像头,确保其与软件或者硬件设备的兼容性。另外,对于大规模的多摄像头系统,还需要考虑带宽和存储的问题,以及数据处理和管理的复杂性。 总之,实时视频捕获多摄像头是一项具有挑战性和应用前景广阔的技术,其在不同领域中的应用将为人们提供更加丰富和多样化的视觉体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆子加油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值