From c90d8c9cbd9175a689265af9b4036f28b9815cde Mon Sep 17 00:00:00 2001 From: miyanhui <dennismi1024@gmail.com> Date: 星期四, 14 二月 2019 14:19:13 +0800 Subject: [PATCH] 去掉AppPipeController里面的VideoCapture的Ffmpeg代码 --- QiaoJiaSystem/StructureApp/AppPipeController.cpp | 78 +++++++++++++++++++++++++++++++++++---- 1 files changed, 70 insertions(+), 8 deletions(-) diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp index 6e0ac75..148d0e6 100644 --- a/QiaoJiaSystem/StructureApp/AppPipeController.cpp +++ b/QiaoJiaSystem/StructureApp/AppPipeController.cpp @@ -31,7 +31,8 @@ triggerElement(25, 10), recordVideoElement(-1, ""), bRecordVideoEnable(false), - rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp") + rpcClient("RtspAnalysServer", "127.0.0.1",10009,"tcp"), + m_bSetWH(false) { init(); @@ -176,6 +177,57 @@ string test_str; + +void AppPipeController::RecordVideo() { + std::string imgKeyYolo = yoloRpcElement.getProperty("imgKey"); + + std::string imgKeyFace = faceRpcElement.getProperty("imgKey"); + if(faceRpcElement.getTriggerState() || + personElement.getTriggerState() || + leftJudgment.getTriggerState() || + rightJudgment.getTriggerState() || + perimeterElement.getTriggerState() || + crowdElement.getTriggerState() || + perHubElement.getTriggerState() || + perStaticElement.getTriggerState()) + { + try { + auto server = rpcClient.getServer(); + if (!server) + { + ERR("server is null"); + return; + } + + if(imgKeyFace != imgKeyYolo) + { + server->recordVideo(imgKeyFace); + server->recordVideo(imgKeyYolo); + INFO("Record Video Face: "<<imgKeyFace); + INFO("Record Video Yolo: "<<imgKeyYolo); + } else { + INFO("Record Video: "<<imgKeyYolo); + server->recordVideo(imgKeyFace); + } + } + catch (std::exception &e) + { + ERR("Record Video ImgKeyFace: "<<imgKeyFace <<" ImgKeyYolo :"<<imgKeyYolo <<" Message: "<<e.what()); + return ; + } + } + else { + INFO("ImageNoFace Yolo:"<<imgKeyYolo<<" Face:"<<imgKeyFace); + INFO("faceRpcElement: "<< faceRpcElement.getTriggerState() <<" "<< + "personElement: "<<personElement.getTriggerState() <<" "<< + "leftJudgment: "<<leftJudgment.getTriggerState() <<" "<< + "leftJudgment: "<<rightJudgment.getTriggerState() <<" "<< + "perimeterElement: "<<perimeterElement.getTriggerState()<<" "<< + "crowdElement: "<<crowdElement.getTriggerState()<<" "<< + "perHubElement: "<<perHubElement.getTriggerState()<<" "<< + "perStaticElement: "<<perStaticElement.getTriggerState()); + } +} void AppPipeController::init() { unsigned char ip_old[15] = {0}; @@ -203,27 +255,29 @@ // int max=appPref.getIntData("n_cut_max_duration"); // recordInit(40,100); videoCaptureElement.registerConnector([&] { - cv::Mat imageTemp; + std::string imgKey; m_hiredisTool.listRpop(m_camId,imgKey); if(imgKey.empty()) { - //DBG("imgKey.empty()"); + ERR("CamId "<<m_camId<<" No ImgKey"); return; } - + cv::Mat imageTemp; + m_hiredisTool.getKeyImage(imgKey,imageTemp); if(!m_bSetWH) { + INFO("SetWidth:"<<imageTemp.cols<<" Height:"<<imageTemp.rows); appPref.setIntData(m_camId+"width",imageTemp.cols); appPref.setIntData(m_camId+"height",imageTemp.rows); m_bSetWH=true; } - m_hiredisTool.getKeyImage(imgKey,imageTemp); + m_hiredisTool.delKey(imgKey); if(imageTemp.empty()) { - ERR("No Image Data In: "<<imgKey); + ERR("No Image Data In: "<<m_camId<<" ImgKey:"<<imgKey); return; } std::string strNewTime = AppUtil::getTimeUSecString(); @@ -254,7 +308,7 @@ imageDrawElement.setImage(imageTemp); imageDrawElement.submit(); } - + //this->RecordVideo(); if(faceRpcElement.getTriggerState() || personElement.getTriggerState() || leftJudgment.getTriggerState() || @@ -300,14 +354,20 @@ personElement.setObjsResults(yoloRpcElement.getLastScoreRects()); personElement.submit(); } + //INFO("Record Video By Yolo"); + //this->RecordVideo(); }); faceRpcElement.registerConnector([&] { imageDrawElement.setFaces(faceRpcElement.getLastScoreRects()); + //INFO("Record Video By Face"); + //this->RecordVideo(); }); yoloRpcElement.registerConnector("YoloTrigger", [&] { // auto images = yoloRpcElement.getTriggerMats(); + //INFO("Record Video By Yolo"); + //this->RecordVideo(); }); faceRpcElement.registerConnector("FaceTrigger", [&] { @@ -318,6 +378,8 @@ faceRpcElement.getTriggerFaces(), faceRpcElement.getTriggerScoreRects(), faceRpcElement.getTriggerMats()}); + //INFO("Record Video By Face"); + //this->RecordVideo(); }); imageDrawElement.registerConnector([&] { @@ -347,7 +409,7 @@ } // registerElement(newRecordVideoElement); - videoCaptureElement.setOutPutInterval(3); + //videoCaptureElement.setOutPutInterval(3); faceExtractElement.setProperty("index", to_string(m_index)); registerElement(yoloRpcElement); //#todo setProperty -- Gitblit v1.8.0