|
@@ -26,7 +26,7 @@ namespace MIVA
|
|
|
//if(!enable) return;
|
|
|
auto iter = this->videoWriters.find(Pid);
|
|
|
if(iter != this->videoWriters.end()){
|
|
|
- if(iter->second.videoWriter == nullptr || iter->second.fileName == ""){
|
|
|
+ if( !outType || iter->second.fileName == ""){
|
|
|
time_t rawtime;
|
|
|
char ctime[80];
|
|
|
struct tm *info;
|
|
@@ -35,9 +35,14 @@ namespace MIVA
|
|
|
strftime(ctime, 80, "%Y-%m-%d_%H:%M:%S", info);
|
|
|
string fileName = this->outDir;
|
|
|
string time1 = ctime;
|
|
|
- fileName += time1 + "_" + Pid + ".mp4";
|
|
|
- // ErrorL << fileName << endl;
|
|
|
- iter->second.videoWriter = std::make_shared<cv::VideoWriter>("appsrc ! autovideoconvert ! omxh264enc ! matroskamux ! filesink location=" + fileName + " sync=false", 0, (double)2, cv::Size(1920, 1080), true);
|
|
|
+ if(outType){
|
|
|
+ fileName += time1 + "_" + Pid + ".mp4";
|
|
|
+ iter->second.videoWriter = std::make_shared<cv::VideoWriter>("appsrc ! autovideoconvert ! omxh264enc ! matroskamux ! filesink location=" + fileName + " sync=false", 0, (double)2, cv::Size(1920, 1080), true);
|
|
|
+ }else{
|
|
|
+ fileName += time1 + "_" + Pid + ".jpg";
|
|
|
+ cv::imwrite(fileName, frame);
|
|
|
+ iter->second.videoWriter = nullptr;
|
|
|
+ }
|
|
|
iter->second.fileName = fileName;
|
|
|
}
|
|
|
}
|
|
@@ -52,13 +57,18 @@ namespace MIVA
|
|
|
strftime(ctime, 80, "%Y-%m-%d_%H:%M:%S", info);
|
|
|
string fileName = this->outDir;
|
|
|
string time1 = ctime;
|
|
|
- fileName += time1 + "_" + Pid + ".mp4";
|
|
|
- // ErrorL << fileName << endl;
|
|
|
+ if(outType){
|
|
|
+ fileName += time1 + "_" + Pid + ".mp4";
|
|
|
+ writer.videoWriter = std::make_shared<cv::VideoWriter>("appsrc ! autovideoconvert ! omxh264enc ! matroskamux ! filesink location=" + fileName + " sync=false", 0, (double)2, cv::Size(1920, 1080), true);
|
|
|
+ }else{
|
|
|
+ fileName += time1 + "_" + Pid + ".jpg";
|
|
|
+ cv::imwrite(fileName, frame);
|
|
|
+ writer.videoWriter = nullptr;
|
|
|
+ }
|
|
|
writer.fileName = fileName;
|
|
|
- writer.videoWriter = std::make_shared<cv::VideoWriter>("appsrc ! autovideoconvert ! omxh264enc ! matroskamux ! filesink location=" + fileName + " sync=false", 0, (double)2, cv::Size(1920, 1080), true);
|
|
|
this->videoWriters[Pid] = writer;
|
|
|
}
|
|
|
- this->videoWriters[Pid].videoWriter->write(frame);
|
|
|
+ if(outType) this->videoWriters[Pid].videoWriter->write(frame);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -68,6 +78,8 @@ namespace MIVA
|
|
|
*/
|
|
|
void recorder::Start()
|
|
|
{
|
|
|
+ if(!this->RecordEnable) return;
|
|
|
+
|
|
|
time_t rawtime;
|
|
|
char ctime[80];
|
|
|
struct tm *info;
|
|
@@ -84,7 +96,6 @@ namespace MIVA
|
|
|
if(opendir(this ->outDir.c_str()) == NULL){
|
|
|
mkdir((this->outDir).c_str(),S_IRWXU|S_IRWXG|S_IRWXO);
|
|
|
}
|
|
|
-
|
|
|
m_recorder->enable = true;
|
|
|
}
|
|
|
|
|
@@ -95,6 +106,7 @@ namespace MIVA
|
|
|
*/
|
|
|
void recorder::Finish()
|
|
|
{
|
|
|
+ if(!outType) return;
|
|
|
for(auto videowriter = this->videoWriters.begin(); videowriter != this->videoWriters.end(); videowriter++){
|
|
|
if(videowriter->second.videoWriter != nullptr){
|
|
|
videowriter->second.videoWriter->release();
|
|
@@ -119,19 +131,4 @@ namespace MIVA
|
|
|
}
|
|
|
return fileName;
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
- * @description: 获取VideoWriter
|
|
|
- * @param {int} sourceId
|
|
|
- * @return {*}
|
|
|
- */
|
|
|
- std::shared_ptr<cv::VideoWriter> recorder::GetVideoWriter(std::string Pid)
|
|
|
- {
|
|
|
- std::shared_ptr<cv::VideoWriter> videoWriter = nullptr;
|
|
|
- auto iter = this->videoWriters.find(Pid);
|
|
|
- if(iter != this->videoWriters.end()){
|
|
|
- videoWriter = iter->second.videoWriter;
|
|
|
- }
|
|
|
- return videoWriter;
|
|
|
- }
|
|
|
};
|