xviewer.h
新增
public:
void StartRecord();//126 开始全部摄像头录制
void StopRecord();//126 停止全部摄像头录制
xviewer.cpp
新增
//视频录制
static vector<XCameraRecord*> records;//126
void XViewer::StartRecord() //开始全部摄像头录制 126
{
StopRecord();
qDebug() << "开始全部摄像头录制";
ui.status->setText(C("录制中。。。"));
//获取配置列表
XCameraConfig* conf = XCameraConfig::Instance();
int count = conf->GetCamCount();
for (int i = 0; i < count; i++)
{
XCameraData cam = conf->GetCam(i);
stringstream ss;
ss << cam.save_path << "/" << i << "/";
QDir dir;
//创建路径存储视频
dir.mkpath(ss.str().c_str());
XCameraRecord* rec = new XCameraRecord();
rec->set_rtsp_url(cam.url);
rec->set_save_path(ss.str());
rec->set_file_sec(5);
rec->Start();//开始录制
records.push_back(rec);
}
//创建录制目录
//分别开始录制线程
}
void XViewer::StopRecord() //停止全部摄像头录制 126
{
ui.status->setText(C("监控中。。。"));
for (auto rec : records)
{
rec->Stop();
delete rec;
}
records.clear();
}
运行结果:
不用拖拽到 xcamerawidget视图上,右键然后点击“开始全部录制”,则三个摄像头同时开始一起录制并保存到对应其摄像头索引号的文件中