From 963090c963b367333cd4f1b173cb51ae227551a5 Mon Sep 17 00:00:00 2001
From: zhangjixing <775834166@qq.com>
Date: 星期六, 12 一月 2019 18:34:40 +0800
Subject: [PATCH] YOLO修改,行为算法优化,视频编辑接口修改

---
 QiaoJiaSystem/build/EncodeServer                      |    0 
 QiaoJiaSystem/StructureApp/HiredisTool.cpp            |    7 
 QiaoJiaSystem/EncodeServer/CMakeLists.txt             |   99 +++++++++
 QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp |   23 +
 QiaoJiaSystem/build/RapidStructureApp                 |    0 
 QiaoJiaSystem/StructureApp/PerimeterElement.cpp       |   30 +-
 QiaoJiaSystem/build/FaceSearchServer                  |    0 
 QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.h        |    1 
 QiaoJiaSystem/EncodeServer/main.cpp                   |   40 ++++
 QiaoJiaSystem/EncodeServer/EncodeVideo.cpp            |   54 +++++
 QiaoJiaSystem/StructureApp/TrackingTrigger.h          |    1 
 QiaoJiaSystem/build/config.json                       |   11 
 QiaoJiaSystem/VideoAnalysFromHC/main.cpp              |    6 
 QiaoJiaSystem/YoloServer/main.cpp                     |    4 
 QiaoJiaSystem/build/DataWebServer                     |    0 
 QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp |   25 +
 QiaoJiaSystem/build/RecordVideo                       |    0 
 QiaoJiaSystem/build/scpToSer.sh                       |    4 
 QiaoJiaSystem/CMakeLists.txt                          |    1 
 QiaoJiaSystem/build/YoloServer                        |    0 
 QiaoJiaSystem/EncodeServer/EncodeVideoManager.cpp     |   58 +++++
 QiaoJiaSystem/EncodeServer/EncodeVideo.h              |   23 ++
 QiaoJiaSystem/EncodeServer/EncodeVideoManager.h       |   20 ++
 QiaoJiaSystem/EncodeServer/NewEncodeVideoManager.cpp  |   59 +++++
 QiaoJiaSystem/build/FaceDetectServer                  |    0 
 QiaoJiaSystem/StructureApp/PerStaticElement.cpp       |    4 
 QiaoJiaSystem/build/RapidStructureAppRtsp             |    0 
 QiaoJiaSystem/StructureApp/AppPipeController.cpp      |    6 
 QiaoJiaSystem/StructureApp/NewRecordVideoElement.cpp  |   11 
 QiaoJiaSystem/build/FaceDetectResourcesTest           |    0 
 QiaoJiaSystem/EncodeServer/NewEncodeVideoManager.h    |   20 ++
 QiaoJiaSystem/build/FaceExtractServer                 |    0 
 QiaoJiaSystem/DataManagerServer/http_configserver.cpp |   48 ++++
 QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp      |   13 +
 QiaoJiaSystem/build/VideoAnalysFromHC                 |    0 
 QiaoJiaSystem/build/config.db                         |    0 
 QiaoJiaSystem/DataManagerServer/web-server接口.txt      |    3 
 QiaoJiaSystem/StructureApp/YoloRpcElement.cpp         |   13 
 QiaoJiaSystem/StructureApp/FaceExtractElement.cpp     |    8 
 QiaoJiaSystem/build/StructureApp                      |    0 
 40 files changed, 527 insertions(+), 65 deletions(-)

diff --git a/QiaoJiaSystem/CMakeLists.txt b/QiaoJiaSystem/CMakeLists.txt
index 400e343..24bb196 100644
--- a/QiaoJiaSystem/CMakeLists.txt
+++ b/QiaoJiaSystem/CMakeLists.txt
@@ -22,6 +22,7 @@
 add_subdirectory(RapidStructureApp)
 add_subdirectory(RecordVideo)
 add_subdirectory(DataManagerServer)
+add_subdirectory(EncodeServer)
 
 
 #add_subdirectory(FaceSearchDbWithImg)
diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
index c857f11..67e82a4 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -997,7 +997,8 @@
     std::string out = value.size() > 0 ? value.toStyledString() : "[]";
     return out;
 }
-
+#define ADD_CAMERA 0
+#define EDIT_CAMERA 1
 //缂栬緫鎽勫儚鏈�
 std::string devHttpServer_c::cam_edit(std::string ip, unsigned int port, std::string content, PResponse &response) {
     DBG("ip:" << ip << "; port:" << port);
@@ -1009,13 +1010,14 @@
     Record_Cam_Dev rec;
     Record_Cam_Sdk rec_sdk_old;
     Record_Cam_Sdk rec_sdk;
-
+    int type=-1;
     int dev_type = db_c.searchDevTypeFromConfigTable();
     if (DEV_STORAGE == dev_type) {
         return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
     }
 
     if (reader.parse(content, value)) {
+
         unsigned char serialnumber[SERIALNO_LEN] = {0};
         ret = getDevSerialNumber(value["str_ip"].asCString(), value["n_port"].asInt(),
                                  value["str_username"].asCString(), \
@@ -1034,18 +1036,48 @@
         rec.str_username = QString::fromStdString(value["str_username"].asString());
         rec.str_password = QString::fromStdString(value["str_password"].asString());
         rec.str_brand = QString::fromStdString(value["str_brand"].asString());
-
+        type=value["n_type"].asInt();
 //        rec_sdk_old = db_c.searchCamSdkTableByCamId(rec.str_cam_dev_id);
 
 //        rec_sdk.str_cam_dev_id = rec.str_cam_dev_id;
 //        rec_sdk.str_sdks = QString::fromStdString(value["str_sdks"].asString());
 //        rec_sdk.str_det_thr = QString::fromStdString(value["str_det_thr"].asString());
 //        rec_sdk.str_cmp_thr = QString::fromStdString(value["str_cmp_thr"].asString());
-
-        ret = db_c.updateCamAndSdkTable(rec, rec_sdk);
-        if (!ret) {
-            return "err_db_content";
+        bool is_exist=db_c.searchCamDevByCamId(rec.str_cam_dev_id);
+        if(ADD_CAMERA == type )
+        {
+           if(is_exist)
+           {
+               return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+           }
+           else
+           {
+               ret =db_c.insertCamDevTable(rec);
+               if (!ret) {
+                   return "err_db_content";
+               }
+           }
         }
+        else if(EDIT_CAMERA == type )
+        {
+            if(is_exist)
+            {
+                ret = db_c.updateCamDevTable(rec);
+                if (!ret) {
+                    return "err_db_content";
+                }
+            }
+            else
+            {
+                 return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+            }
+        }
+        else
+        {
+             return "{\"ret_status\": \"鍐呭鏈夎锛岃妫�鏌ワ紒\"}";
+        }
+
+
     } else {
         return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
     }
@@ -1673,6 +1705,7 @@
                 appConfig.setStringProperty("erlCookie", cookie);
                 appConfig.setStringProperty("erlPath", path);
                 appConfig.setStringProperty("erlFatherNode", FatherNodeName);
+                appConfig.setStringProperty("clusterID", clusterID);
                 appConfig.save();
 //                erlangDbTool->findAllNode();
                 //face search server reboot
@@ -1684,6 +1717,7 @@
                 appConfig.setStringProperty("erlCookie", "");
                 appConfig.setStringProperty("erlPath", "");
                 appConfig.setStringProperty("erlFatherNode", "");
+                appConfig.setStringProperty("clusterID", "");
                 appConfig.save();
                 delete erlangDbTool;
                 erlangDbTool = nullptr;
diff --git "a/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt" "b/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt"
index 487734a..9988ae6 100644
--- "a/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt"
+++ "b/QiaoJiaSystem/DataManagerServer/web-server\346\216\245\345\217\243.txt"
@@ -167,7 +167,8 @@
 	//"str_sdks": "1,2,4",
 	//"str_det_thr": "90,80,95",
 	//"str_cmp_thr": "80,85,90",
-	"str_reserved": ""
+	"str_reserved": "",//鍙紶鍙笉浼�
+        "n_type" : 0   //0娣诲姞 1缂栬緫  
 }
 杩斿洖锛�
 {
diff --git a/QiaoJiaSystem/EncodeServer/CMakeLists.txt b/QiaoJiaSystem/EncodeServer/CMakeLists.txt
new file mode 100644
index 0000000..146deb4
--- /dev/null
+++ b/QiaoJiaSystem/EncodeServer/CMakeLists.txt
@@ -0,0 +1,99 @@
+#cmake_minimum_required(VERSION 2.8)
+
+#project(VideoAnalysFromHC)
+#add_executable(${PROJECT_NAME} "main.cpp")
+cmake_minimum_required(VERSION 3.5)
+project(EncodeServer)
+set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../build)
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_BUILD_TYPE debug)
+add_compile_options(-fPIC)
+add_definitions(-DGLOG)
+add_definitions(-DDEBUG_ERR -DDEBUG_INFO -fpermissive)
+
+SET(LIBS
+    glog
+    #Ice
+
+    crypto
+
+
+    #ffmpeg
+    avformat
+    avcodec
+    swresample
+    swscale
+    avutil
+    bz2 dl z
+
+    #QT5
+    Qt5Core
+    Qt5Sql
+    Qt5Gui
+
+
+    cuda jsoncpp
+    #    cudart
+    #    cublas
+    opencv_world
+    jsoncpp
+    pthread
+    hiredis
+    )
+include_directories(
+
+    #glog
+    ../../../BasicPlatForm/libs/glog/include
+    ./
+    ../VideoServer
+
+    ../VideoServer/QiaoJia/DB
+    ../VideoServer/QiaoJia/dispatchTool
+    ../StructureApp/
+
+    ../../../BasicPlatForm/
+
+    ../../../BasicPlatForm/basic/pipe/
+
+
+
+    ../../../BasicPlatForm/libs/opencv/include
+
+    ../../../BasicPlatForm/libs/ffmpeg/include
+    ../../../BasicPlatForm/libs/jsoncpp/include
+
+
+
+    /usr/include/x86_64-linux-gnu/qt5
+    /usr/include/x86_64-linux-gnu/qt5/QtCore/
+    /usr/include/x86_64-linux-gnu/qt5/QtSql/
+
+    ../../BasicPlatForm/libs/hiredis-master/include
+)
+
+link_directories(
+    #glog
+    ../../../BasicPlatForm/libs/glog/lib
+    ../../../BasicPlatForm/libs/openssl/lib
+    ../../../BasicPlatForm/libs/opencv/lib
+    ../../../BasicPlatForm/libs/ffmpeg/lib
+#    ../../../BasicPlatForm/libs/jsoncpp/lib
+
+#    ../../../BasicPlatForm/libs/libuuid/lib
+
+
+    ../../BasicPlatForm/libs/hiredis-master/lib
+)
+
+add_executable(${PROJECT_NAME}
+      ../../../BasicPlatForm/basic/pipe_element/ffmpeg/VideoChangeScore.cpp
+       ../../../BasicPlatForm/basic/pipe_element/ffmpeg/FfmpegElement.cpp
+       ../StructureApp/NewRecordVideoElement.cpp
+       EncodeVideoManager.cpp
+       EncodeVideo.cpp
+       ../StructureApp/HiredisTool.cpp
+       main.cpp
+    )
+target_link_libraries(${PROJECT_NAME}
+    ${LIBS}
+    )
diff --git a/QiaoJiaSystem/EncodeServer/EncodeVideo.cpp b/QiaoJiaSystem/EncodeServer/EncodeVideo.cpp
new file mode 100644
index 0000000..b9ce644
--- /dev/null
+++ b/QiaoJiaSystem/EncodeServer/EncodeVideo.cpp
@@ -0,0 +1,54 @@
+#include "EncodeVideo.h"
+
+EncodeVideo::EncodeVideo():
+videoEncoderElement(cv::Size(1920, 1080), 8, 0)
+{
+
+}
+EncodeVideo::~EncodeVideo()
+{
+
+}
+
+void EncodeVideo::threadFunc()
+{
+
+
+    std::string src_path=getProperty("src_path");
+    if(src_path.empty())
+    {
+        DBG("src_path.empty()");
+        return ;
+    }
+    int size=m_hiredisTool.getSize(src_path);
+
+    bool fileCreate = false;
+    for(int i=0;i<size;++i)
+    {
+
+        cv::Mat img;
+        m_hiredisTool.getImage(src_path,img);
+        if(img.empty()){
+            DBG("img.empty()");
+            continue;
+        }
+
+        if(!fileCreate)
+        {
+            fileCreate = true;
+            DBG("fileCreate buf_size="<<size<<"  file_name="<<src_path);
+             videoEncoderElement.threadInitial(getProperty("src_path"),img);
+
+        }
+        else
+        {
+
+            videoEncoderElement.doFunc(img);
+        }
+         usleep(2*1000);
+    }
+
+    videoEncoderElement.threadClosing();
+    m_hiredisTool.delKey(src_path);
+    m_hiredisTool.hashDel(file_list,src_path);
+}
diff --git a/QiaoJiaSystem/EncodeServer/EncodeVideo.h b/QiaoJiaSystem/EncodeServer/EncodeVideo.h
new file mode 100644
index 0000000..164e55c
--- /dev/null
+++ b/QiaoJiaSystem/EncodeServer/EncodeVideo.h
@@ -0,0 +1,23 @@
+#ifndef ENCODEVIDEO_H
+#define ENCODEVIDEO_H
+#include "../StructureApp/HiredisTool.h"
+#include <basic/pipe/PipeElement.h>
+#include <basic/pipe_element/ffmpeg/FfmpegElement.h>
+class EncodeVideo: public basic::PipeElement
+{
+public:
+    EncodeVideo();
+    ~EncodeVideo();
+
+   void setImageQue(std::queue<cv::Mat>& imgQue);
+
+private:
+    virtual void threadFunc()override;
+private:
+
+    std::queue<cv::Mat> m_imgQue;
+     HiredisTool m_hiredisTool;
+    ffmpeg::VideoEncodeElement videoEncoderElement;
+};
+
+#endif // NEWENCODEVIDEO_H
diff --git a/QiaoJiaSystem/EncodeServer/EncodeVideoManager.cpp b/QiaoJiaSystem/EncodeServer/EncodeVideoManager.cpp
new file mode 100644
index 0000000..fd67754
--- /dev/null
+++ b/QiaoJiaSystem/EncodeServer/EncodeVideoManager.cpp
@@ -0,0 +1,58 @@
+#include "EncodeVideoManager.h"
+#include "NewRecordVideoElement.h"
+#include <basic/util/app/AppConfig.h>
+EncodeVideoManager::EncodeVideoManager():
+TimerElement(1000)
+{
+   // m_hiredisTool.delKey("")
+    int thread_num=appConfig.getIntProperty("encode_thread_num");
+
+    for(int i=0;i<thread_num;++i)
+    {
+         EncodeVideo* newEncodeViedo=new EncodeVideo();
+         if(newEncodeViedo)
+         {
+
+               m_newEncodeVideoVec.push_back(newEncodeViedo);
+               newEncodeViedo->start();
+         }
+
+    }
+
+}
+EncodeVideoManager::~EncodeVideoManager()
+{
+    for(int i=0;i<m_newEncodeVideoVec.size();++i)
+    {
+        if(m_newEncodeVideoVec[i])
+        {
+            m_newEncodeVideoVec[i]->stop();
+            delete m_newEncodeVideoVec[i];
+        }
+    }
+
+}
+void EncodeVideoManager::timerFunc()
+{
+   std::map<std::string,int> fileMap=m_hiredisTool.findAllFileStatus();
+//   auto it=fileMap.begin();
+   for(auto it=fileMap.begin();it!=fileMap.end();it++)
+   {
+       if(it->second == RECORD_ENDING)
+       {
+
+           for(int i=0;i<m_newEncodeVideoVec.size();++i)
+           {
+               if(m_newEncodeVideoVec[i] && !m_newEncodeVideoVec[i]->isBusy())
+               {
+                  m_hiredisTool.hashSet(file_list,it->first,RECORD_STOP);
+                  m_newEncodeVideoVec[i]->setProperty("src_path",it->first);
+                  m_newEncodeVideoVec[i]->submit();
+                  break;
+               }
+           }
+
+
+       }
+   }
+}
diff --git a/QiaoJiaSystem/EncodeServer/EncodeVideoManager.h b/QiaoJiaSystem/EncodeServer/EncodeVideoManager.h
new file mode 100644
index 0000000..5b0c5a3
--- /dev/null
+++ b/QiaoJiaSystem/EncodeServer/EncodeVideoManager.h
@@ -0,0 +1,20 @@
+#ifndef ENCODEVIDEOMANAGER_H
+#define ENCODEVIDEOMANAGER_H
+#include <basic/pipe/TimerElement.h>
+#include "EncodeVideo.h"
+
+class EncodeVideoManager: public TimerElement
+{
+public:
+    EncodeVideoManager();
+   ~EncodeVideoManager();
+private:
+    virtual void timerFunc();
+
+private:
+   HiredisTool m_hiredisTool;
+   std::vector<EncodeVideo*> m_newEncodeVideoVec;
+
+};
+
+#endif // NEWENCODEVIDEOMANAGER_H
diff --git a/QiaoJiaSystem/EncodeServer/NewEncodeVideoManager.cpp b/QiaoJiaSystem/EncodeServer/NewEncodeVideoManager.cpp
new file mode 100644
index 0000000..a2c04ca
--- /dev/null
+++ b/QiaoJiaSystem/EncodeServer/NewEncodeVideoManager.cpp
@@ -0,0 +1,59 @@
+#include "NewEncodeVideoManager.h"
+#include "NewRecordVideoElement.h"
+#include <basic/util/app/AppConfig.h>
+NewEncodeVideoManager::NewEncodeVideoManager():
+TimerElement(1000)
+{
+   // m_hiredisTool.delKey("")
+    int thread_num=appConfig.getIntProperty("encode_thread_num");
+    for(int i=0;i<thread_num;++i)
+    {
+         NewEncodeVideo* newEncodeViedo=new NewEncodeVideo;
+         if(newEncodeViedo)
+         {
+               m_newEncodeVideoVec.push_back(newEncodeViedo);
+               newEncodeViedo->start();
+         }
+
+    }
+
+}
+NewEncodeVideoManager::~NewEncodeVideoManager()
+{
+    for(int i=0;i<m_newEncodeVideoVec.size();++i)
+    {
+        if(m_newEncodeVideoVec[i])
+        {
+            m_newEncodeVideoVec[i]->stop();
+            delete m_newEncodeVideoVec[i];
+        }
+    }
+
+}
+void NewEncodeVideoManager::timerFunc()
+{
+   std::map<std::string,int> fileMap=m_hiredisTool.findAllFileStatus();
+//   auto it=fileMap.begin();
+   for(auto it=fileMap.begin();it!=fileMap.end();it++)
+   {
+       if(it->second == RECORD_ENDING)
+       {
+
+
+
+
+           for(int i=0;i<m_newEncodeVideoVec.size();++i)
+           {
+               if(m_newEncodeVideoVec[i] && !m_newEncodeVideoVec[i]->isBusy())
+               {
+                  m_hiredisTool.hashSet(file_list,it->first,RECORD_STOP);
+                  m_newEncodeVideoVec[i]->setProperty("src_path",it->first);
+                  m_newEncodeVideoVec[i]->submit();
+                  break;
+               }
+           }
+
+
+       }
+   }
+}
diff --git a/QiaoJiaSystem/EncodeServer/NewEncodeVideoManager.h b/QiaoJiaSystem/EncodeServer/NewEncodeVideoManager.h
new file mode 100644
index 0000000..3d6ac72
--- /dev/null
+++ b/QiaoJiaSystem/EncodeServer/NewEncodeVideoManager.h
@@ -0,0 +1,20 @@
+#ifndef NEWENCODEVIDEOMANAGER_H
+#define NEWENCODEVIDEOMANAGER_H
+#include <basic/pipe/TimerElement.h>
+#include "NewEncodeVideo.h"
+
+class NewEncodeVideoManager: public TimerElement
+{
+public:
+    NewEncodeVideoManager();
+   ~NewEncodeVideoManager();
+private:
+    virtual void timerFunc();
+
+private:
+   HiredisTool m_hiredisTool;
+   std::vector<NewEncodeVideo*> m_newEncodeVideoVec;
+
+};
+
+#endif // NEWENCODEVIDEOMANAGER_H
diff --git a/QiaoJiaSystem/EncodeServer/main.cpp b/QiaoJiaSystem/EncodeServer/main.cpp
new file mode 100644
index 0000000..71056e1
--- /dev/null
+++ b/QiaoJiaSystem/EncodeServer/main.cpp
@@ -0,0 +1,40 @@
+#include <stdio.h>
+#include <iostream>
+#include <unistd.h>
+#include <cstring>
+#include <basic/debug/Debug.h>
+#include "EncodeVideoManager.h"
+#include <thread>
+
+using namespace std;
+
+#include <basic/util/file/FileUtil.h>
+#include <basic/util/app/AppPreference.hpp>
+#include <basic/util/app/AppConfig.h>
+
+
+
+
+//static void startEncodeVideoManager(int i)
+//{
+//    EncodeVideoManager  encodeVideoManager;
+//    encodeVideoManager.start();
+//    while (1) {
+//        sleep(1 * 60 * 60 * 12);
+//    }
+//}
+
+
+int main(int argc, char **argv) {
+    SAVE_APP_ARGS
+    ENABLEGLOG(GET_STR_CONFIG("logPath").c_str());
+
+    EncodeVideoManager  encodeVideoManager;
+    encodeVideoManager.start();
+
+    while (1) {
+        sleep(1000000);
+    }
+    return 0;
+
+}
diff --git a/QiaoJiaSystem/StructureApp/AppPipeController.cpp b/QiaoJiaSystem/StructureApp/AppPipeController.cpp
index 6edd112..db11a0c 100644
--- a/QiaoJiaSystem/StructureApp/AppPipeController.cpp
+++ b/QiaoJiaSystem/StructureApp/AppPipeController.cpp
@@ -214,9 +214,7 @@
                                                     perHubElement.getTriggerState() ||
                                                     perStaticElement.getTriggerState()
                 );
-                if (!newRecordVideoElement.isBusy()) {
-                    newRecordVideoElement.submit();
-                }
+
 
             }
 
@@ -306,7 +304,7 @@
     }
     registerElement(imageDrawElement);
     registerElement(newRecordVideoElement);
-    videoCaptureElement.setOutPutInterval(5);
+    videoCaptureElement.setOutPutInterval(3);
     faceExtractElement.setProperty("index", to_string(m_index));
     registerElement(yoloRpcElement);
     //#todo setProperty
diff --git a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
index c1519f2..00f910d 100644
--- a/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
+++ b/QiaoJiaSystem/StructureApp/FaceExtractElement.cpp
@@ -11,7 +11,6 @@
 #include <QtCore/QJsonObject>
 #include <uuid/uuid.h>
 #include <jsoncpp/json/json.h>
-
 #define state "state"
 
 void StringReplace(string &strBase, string strSrc, string strDes) {
@@ -110,7 +109,8 @@
                     CvUtil::cvMat2Buffer(faceExtractQueueTmp[i].faceImages[j], buffer);
                     std::string strImgUrlTmp = "";
                     fdfsClient->fastFds->uploadFile(buffer, strImgUrlTmp, "jpg");
-                    strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
+                  //  strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
+                    DBG("strImgUrlTmp="<<strImgUrlTmp);
                     strImgUrl.clear();
                     strImgUrl = strImgUrlTmp;
 //                    strImgUrl.append("/").append(strImgUrlTmp);
@@ -141,6 +141,7 @@
 
                 t_json["personPicUrl"] = "wait todo";//浜哄憳鍥剧墖 store
                 t_json["picAddress"] = getProperty("str_addr");//鎶撴媿鍦板潃
+                  DBG("picAddress="<< t_json["picAddress"] );
                 t_json["picMaxUrl"] = "wait todo";//澶у浘璺緞
                 t_json["picLocalUrl"] = "wait todo";//鏈湴璺緞
                 t_json["picSmUrl"] = strImgUrl;//浜哄憳鎶撳皬鍥�
@@ -155,6 +156,9 @@
                 t_json["personIsHub"] = "4";//1: 鎶ヨ  2: 鍙枒  3: 瀹夊叏  4: 鏈煡
 
 
+                t_json["cluster_id"] = appPref.getStringData("clusterID");
+                t_json["ack_alarm"] = "0";
+
                 //faceExtractElement.setProperty("dev_id", str_device_id);
                 //faceExtractElement.setProperty("cg_id", str_ch_id);
                 t_json["videoNum"] = getProperty("dev_id");//Video璁惧缂栧彿//getProperty("path");//Vide缂栧彿 澶栭敭
diff --git a/QiaoJiaSystem/StructureApp/HiredisTool.cpp b/QiaoJiaSystem/StructureApp/HiredisTool.cpp
index 2094325..a54a9bd 100644
--- a/QiaoJiaSystem/StructureApp/HiredisTool.cpp
+++ b/QiaoJiaSystem/StructureApp/HiredisTool.cpp
@@ -109,12 +109,12 @@
         std::string content;
         cv::Mat imgTep;
 
-
         listRpop(file_name,content);
 
 
         Json::Reader reader;
         Json::Value value;
+
         if(!reader.parse(content,value))
         {
            return ;
@@ -124,9 +124,12 @@
         std::vector<uchar> data;
 
         data.resize(str.size());
+
         data.assign(str.begin(),str.end());
+
         CvUtil::buffer2CvMat(data,imgTep);
-     imgTep.copyTo(img);
+
+        imgTep.copyTo(img);
     // return img;
 
 }
diff --git a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
index d04013c..49af467 100644
--- a/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
+++ b/QiaoJiaSystem/StructureApp/JudgmentRetrogradeTool.cpp
@@ -11,7 +11,7 @@
 
 JudgmentRetrogradeTool::JudgmentRetrogradeTool(const SdkRule &rule) :
     TimerElement(1000),
-    m_triggerElement(0, rule.nTriggerDelay * 1000 * 1000),
+    m_triggerElement(rule.nTriggerDelay * 8, 0),
     m_sdkRule(rule),
     pManagerEsDB(nullptr) {
     pManagerEsDB = new EsDBTool(appPref.getStringData("ipAdd"), appPref.getIntData("ipPort"));
@@ -175,18 +175,24 @@
             m_mapPerRet[scoredRect.id] = true;
 
             m_triggerElement.setState(true);
-            auto t_image = image(
-                CvUtil::zoomRectEqual(scoredRect.rect, 1.2, 1.2) & cv::Rect(0, 0, image.cols, image.rows)).clone();
-            //  auto t_image = image(scoredRect.rect& cv::Rect(0, 0, image.cols, image.rows)).clone();
-            std::string imgUrl = uploadImgToFdfs(t_image);
-            saveInfoToEs(imgUrl, scoredRect);
+
+
             break;
         } else {
             m_triggerElement.setState(false);
 
         }
+          m_triggerElement.triggerOnce();
+          if(m_triggerElement.getTriggerState())
+          {
+              auto t_image = image(
+                  CvUtil::zoomRectEqual(scoredRect.rect, 1.2, 1.2) & cv::Rect(0, 0, image.cols, image.rows)).clone();
+              //  auto t_image = image(scoredRect.rect& cv::Rect(0, 0, image.cols, image.rows)).clone();
+              std::string imgUrl = uploadImgToFdfs(t_image);
+              saveInfoToEs(imgUrl, scoredRect);
+          }
     }
-    m_triggerElement.triggerOnce();
+
 }
 
 std::string JudgmentRetrogradeTool::uploadImgToFdfs(cv::Mat &image) {
@@ -230,7 +236,8 @@
     t_json["personPicUrl"] = "";// 浜哄憳 鍦板簱鍥剧墖
     t_json["ChannlId"] = getProperty("ch_id"); // 閫氶亾id
     t_json["likeDate"] = AppUtil::getTimeSecString(); // 姣斿鏃堕棿
-    t_json["picAddress"] = getProperty("str_addr");// 鎶撴媿鍦板潃
+    t_json["picAddress"] = m_sdkRule.strAddr.toStdString();// 鎶撴媿鍦板潃
+    DBG("picAddress="<<m_sdkRule.strAddr.toStdString());
     t_json["picMaxUrl"] = "wait todo"; // 澶у浘璺緞
 
 
@@ -253,7 +260,7 @@
     t_json["personIsHub"] = m_triggerElement.getTriggerState() ? "1" : "4"; //1: 鎶ヨ  2: 鍙枒  3: 瀹夊叏  4: 鏈煡
     t_json["videoIp"] = getProperty("local_ip");//褰撳墠鏈嶅姟鍣↖P鍦板潃
     t_json["ack_alarm"] = m_triggerElement.getTriggerState() ? "0" : "";  //  que ren shi fou bao jing
-    t_json["cluster_id"] = "wait todo"; // ji qun id
+    t_json["cluster_id"] = appPref.getStringData("clusterID");; // ji qun id
 
     bool retface = false;
     if (pManagerEsDB)
diff --git a/QiaoJiaSystem/StructureApp/NewRecordVideoElement.cpp b/QiaoJiaSystem/StructureApp/NewRecordVideoElement.cpp
index b9e696c..0ba53a9 100644
--- a/QiaoJiaSystem/StructureApp/NewRecordVideoElement.cpp
+++ b/QiaoJiaSystem/StructureApp/NewRecordVideoElement.cpp
@@ -10,7 +10,8 @@
 
    // basicPath();
     m_cutPath= appPref.getStringData("user.loop.absolute.path");
-     recordInit(60,360);
+
+     recordInit(appPref.getIntData("n_cut_min_duration"),appPref.getIntData("n_cut_max_duration"));
 }
 
 NewRecordVideoElement::~NewRecordVideoElement() {
@@ -27,7 +28,7 @@
      getImg(info);
     std::string srcPath= getFileName(info.time);
     m_filename=srcPath;
-    DBG("m_filename: " << m_filename);
+   // DBG("m_filename: " << m_filename);
 
     m_hiredisTool.pushImageBuf(m_filename,info.img);
      m_hiredisTool.addFileInfo(m_filename,RECORD_DOING);
@@ -80,7 +81,7 @@
     QDateTime dt = QDateTime::fromString(QString::fromStdString(timeStamp), "yyyy-MM-dd hh:mm:ss:zzz");
 
      std::string t_strTime=dt.toString("yyyyMMddhh").toStdString();
-     DBG("t_strTime="<<t_strTime);
+    // DBG("t_strTime="<<t_strTime);
      t_FilePath.append(camID + "/" + t_strTime.substr(0, 6)+ "/" +t_strTime.substr(6, 2) + "/");
      //YYYYMMDDHH
       t_FilePath.append(t_strTime.substr(0,10)+ "/");
@@ -213,8 +214,8 @@
  void NewRecordVideoElement::recordInit(int videoMin, int videoMax) {
 
      sdkTrigger = false;
-     fileMin = videoMin;
-     fileMax = videoMax;
+     fileMin = videoMin*8;//fps=8
+     fileMax = videoMax*8;
      triggerDelay = fileMin/2;
 
      recordStatus = RECORD_STOP;
diff --git a/QiaoJiaSystem/StructureApp/PerStaticElement.cpp b/QiaoJiaSystem/StructureApp/PerStaticElement.cpp
index 4dbcf92..5d3de33 100644
--- a/QiaoJiaSystem/StructureApp/PerStaticElement.cpp
+++ b/QiaoJiaSystem/StructureApp/PerStaticElement.cpp
@@ -213,7 +213,7 @@
     t_json["personPicUrl"] = "";// 浜哄憳 鍦板簱鍥剧墖
     t_json["ChannlId"] = getProperty("ch_id"); // 閫氶亾id
     t_json["likeDate"] =AppUtil::getTimeSecString(); // 姣斿鏃堕棿
-    t_json["picAddress"] =getProperty("str_addr");// 鎶撴媿鍦板潃
+    t_json["picAddress"] =m_sdkRule.strAddr.toStdString();// 鎶撴媿鍦板潃
     t_json["picMaxUrl"] = "wait todo"; // 澶у浘璺緞
 
 
@@ -236,7 +236,7 @@
     t_json["personIsHub"] = m_triggerElement.getTriggerState()?"1":"4"; //1: 鎶ヨ  2: 鍙枒  3: 瀹夊叏  4: 鏈煡
     t_json["videoIp"] = m_sdkRule.strAddr.toStdString();  // 璁惧ip
     t_json["ack_alarm"]=m_triggerElement.getTriggerState()?"0":"";  //  que ren shi fou bao jing
-    t_json["cluster_id"]="wait todo"; // ji qun id
+    t_json["cluster_id"]=appPref.getStringData("clusterID");; // ji qun id
 
     bool retface = false;
     if(pManagerEsDB)
diff --git a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
index 27d4716..35ff6e8 100644
--- a/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
+++ b/QiaoJiaSystem/StructureApp/PerimeterElement.cpp
@@ -18,7 +18,7 @@
     PipeElement(true),
     trackingTrigger(nullptr),
     mRealNum(0),
-    m_triggerElement(0, rule.nTriggerDelay * 1000 * 1000),
+    m_triggerElement(rule.nTriggerDelay*8,0),
     pManagerEsDB(nullptr),
     npts(0) {
 
@@ -40,6 +40,7 @@
 
 void PerimeterElement::threadFunc() {
 
+   // ClockTimer ct("PerimeterElement::threadFunc");
     if (!isInWeek(m_sdkRule.weekRuleVec))
         return;
     int num = 0;
@@ -73,16 +74,16 @@
 
     switch (m_sdkRule.nSdkType) {
         case PerimeterSdk:
-            state = num > 0 && num != mRealNum;
+            state = num > 0 ;
 
 
             break;
         case CrowdSdk:
-            state = num > m_sdkRule.nAlarmNumLowerLimit && num != mRealNum;
+            state = num > m_sdkRule.nAlarmNumLowerLimit  ;
 
             break;
         case PerHubSdk:
-            state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit && num != mRealNum;
+            state = num > m_sdkRule.nAlarmNumLowerLimit && num < m_sdkRule.nAlarmNumUpperLimit ;
 //         if(m_sdkRule.nAlarmNumLowerLimit>0)
 //         {
 //             if( m_sdkRule.nAlarmNumUpperLimit>m_sdkRule.nAlarmNumLowerLimit+1)
@@ -113,21 +114,25 @@
         default:
             break;
     }
-    m_triggerElement.setState(state);
 
+    m_triggerElement.setState(state);
+    m_triggerElement.triggerOnce();
     //  DBG("imgUrl="<<imgUrl);
-    if (state) {
+    if (m_triggerElement.getTriggerState() && num!=mRealNum)
+    {
         auto t_image = image(CutMask()).clone();
         std::string imgUrl = uploadImgToFdfs(t_image);
         saveInfoToEs(imgUrl, picDate);
         DBG("num=" << num << " lastnum=" << mRealNum);
 
     }
+    //if(state)
+   // DBG("num=" << num <<"m_triggerElement.getTriggerState()="<<m_triggerElement.getTriggerState());
 
 
-    m_triggerElement.triggerOnce();
+   mRealNum = num;
 
-    mRealNum = num;
+
     // DBG("m_sdkRule.nSdkType="<<m_sdkRule.nSdkType<<" num="<<num);
     fireConnectors();
 }
@@ -210,7 +215,7 @@
         CvUtil::cvMat2Buffer(image, buffer);
         std::string strImgUrlTmp = "";
         fdfsClient->fastFds->uploadFile(buffer, strImgUrlTmp, "jpg");
-        strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
+      //  strImgUrl.append(fdfsClient->fastFds->getIp() + "/" + strImgUrlTmp);
         strImgUrl.clear();
         strImgUrl = strImgUrlTmp;
 //                    strImgUrl.append("/").append(strImgUrlTmp);
@@ -243,13 +248,14 @@
     t_json["personPicUrl"] = "";// 浜哄憳 鍦板簱鍥剧墖
     t_json["ChannlId"] = getProperty("ch_id"); // 閫氶亾id
     t_json["likeDate"] = AppUtil::getTimeSecString(); // 姣斿鏃堕棿
-    t_json["picAddress"] = getProperty("str_addr");// 鎶撴媿鍦板潃
+    t_json["picAddress"] = m_sdkRule.strAddr.toStdString();// 鎶撴媿鍦板潃
+    DBG("picAddress="<<m_sdkRule.strAddr.toStdString());
     t_json["picMaxUrl"] = "wait todo"; // 澶у浘璺緞
 
 
     //   t_json["Age"] ="wait todo";
     t_json["picDate"] = time; // 鎶撴媿鏃堕棿锛屽繀椤绘湁
-    // DBG("picDate="<<time);
+     DBG("picDate="<<time);
     t_json["picLocalUrl"] = "wait todo";  // 鏈湴璺緞
     t_json["isDelete"] = "1";//榛樿1 ,0鏃犳晥 1鏈夋晥
 
@@ -267,7 +273,7 @@
     t_json["personIsHub"] = m_triggerElement.getTriggerState() ? "1" : "4"; //1: 鎶ヨ  2: 鍙枒  3: 瀹夊叏  4: 鏈煡
     t_json["videoIp"] = m_sdkRule.strAddr.toStdString();  // 璁惧ip
     t_json["ack_alarm"] = m_triggerElement.getTriggerState() ? "0" : "";  //  que ren shi fou bao jing
-    t_json["cluster_id"] = "wait todo"; // ji qun id
+    t_json["cluster_id"] = appPref.getStringData("clusterID");; // ji qun id
 
     bool retface = false;
     if (pManagerEsDB)
diff --git a/QiaoJiaSystem/StructureApp/TrackingTrigger.h b/QiaoJiaSystem/StructureApp/TrackingTrigger.h
index 2e86b19..a9aa7a8 100644
--- a/QiaoJiaSystem/StructureApp/TrackingTrigger.h
+++ b/QiaoJiaSystem/StructureApp/TrackingTrigger.h
@@ -28,6 +28,7 @@
             if (lastRect.id >= 0 && (rect.rect & lastRect.rect).area() > lastRect.rect.area() * 0.4) {
                 found = true;
                 rect.id = lastRect.id;
+                lastRect.properties["time"]=rect.properties["time"];
                 rect.properties = lastRect.properties;
                 tempScoreRects.push_back(rect);
                 break;
diff --git a/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp b/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp
index b16012d..a56a7e7 100644
--- a/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp
+++ b/QiaoJiaSystem/StructureApp/YoloRpcElement.cpp
@@ -54,7 +54,7 @@
 
 
 std::vector<ScoredRect> YoloRpcElement::getLastScoreRects() const {
-    return triggerScoredRects;
+    return trackingTrigger->getLastScoreRects();
 }
 
  cv::Mat YoloRpcElement::getImage() const
@@ -64,6 +64,7 @@
 
 void YoloRpcElement::threadFunc()
 {
+ //   ClockTimer ct("YoloRpcElement::threadFunc");
         triggerScoredRects.clear();
     try {
             auto server = rpcClient.getServer();
@@ -103,19 +104,21 @@
             int h = (obj.rcObj.bottom - obj.rcObj.top) * image.rows;
             scoredRect.rect = cv::Rect(x, y, w, h);
             scoredRect.score = scoredRect.rect.area() > 0 ? obj.prob : 0;
+            scoredRect.properties["time"] = getProperty("time");
             if (trackingTrigger->triggerOnce(scoredRect))
             {
                 trackingTrigger->getLastRect().properties["id"] = to_string(scoredRect.id);
                 trackingTrigger->getLastRect().properties["type"] = cocoData[obj.type];
                 trackingTrigger->getLastRect().properties["time"] = getProperty("time");
+              //  DBG("time)"<<getProperty("time"));
                 triggerScoredRects.push_back(trackingTrigger->getLastRect());
             }
         }
         trackingTrigger->triggerLine();
-        if(trackingTrigger->getLastScoreRects().size()>20)
-        {
-            DBG("");
-        }
+//        if(trackingTrigger->getLastScoreRects().size()>20)
+//        {
+//            DBG("");
+//        }
         fireConnectors();
 }
 
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
index f64710f..828dc70 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
+++ b/QiaoJiaSystem/VideoAnalysFromHC/RtspAnalysElement.cpp
@@ -81,13 +81,26 @@
                                                  item.str_password.toStdString(), item.str_brand.toStdString());
             SdkRuleMap ruleMap = m_lDBTool->searchSdkRuleByCamId(item.str_cam_dev_id);
             for (auto &rule:ruleMap) {
-                if (rule.second.nThreshold < 5 || rule.second.nThreshold > 95) {
-                    rule.second.nThreshold = 75;
-                }
-                rule.second.fSensitivity = (float) (rule.second.nThreshold) / 100;
-                DBG("fSensitivity" << rule.second.fSensitivity);
+
                 rule.second.strAddr = item.str_addr;
                 rule.second.weekRuleVec = m_lDBTool->searchCameraWeekRuleByCamId(item.str_cam_dev_id, rule.first);
+
+                if(rule.second.nSdkType == FaceSdk) continue;
+
+                if (rule.second.nThreshold < 5 )
+                {
+                    rule.second.fSensitivity=0.95;
+                }
+                else if(rule.second.nThreshold > 95)
+                {
+                     rule.second.fSensitivity=0.05;
+                }
+                else
+                {
+                    rule.second.fSensitivity = 1-(float) (rule.second.nThreshold) / 100;
+                }
+
+                DBG("fSensitivity" << rule.second.fSensitivity);
             }
             appPref.setStringData(t_camIdex + "rtsp", rtsp_url);
             // appPref.setStringData(t_camIdex+"addr", item.str_addr.toStdString());
diff --git a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
index cfb0eba..5b44cc1 100644
--- a/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
+++ b/QiaoJiaSystem/VideoAnalysFromHC/main.cpp
@@ -42,8 +42,8 @@
 
 static void startRtspAnalysElement(LDBTool *_dbTool) {
     RtspAnalysElement rtspAnalysElement(_dbTool);
-    NewEncodeVideoManager  newEncodeVideoManager;
-    newEncodeVideoManager.start();
+//    NewEncodeVideoManager  newEncodeVideoManager;
+//    newEncodeVideoManager.start();
     while (1) {
         sleep(1 * 60 * 60 * 12);
     }
@@ -126,7 +126,7 @@
     appPref.setStringData("fxDevID", rec.dev_id.toStdString());
     appPref.setStringData("fxDevNAME", rec.dev_name.toStdString());
     appPref.setStringData("user.loop.absolute.path", appConfig.getStringProperty("cutPath"));
-
+    appPref.setStringData("clusterID", appConfig.getStringProperty("clusterID"));
 
     bool loopRet = true;
     while (loopRet) {
diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
index dd8ba1c..acabafb 100644
--- a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
+++ b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.cpp
@@ -478,7 +478,20 @@
 
     return lst;
 }
+bool LDBTool::searchCamDevByCamId(QString strCamId)
+{
+    QMutexLocker mutexLocker(&m_mutexVisit);//TODO
+    std::list<Record_Cam_Dev> lst;
+    QSqlTableModel pModel(NULL, m_db);
+    pModel.setTable("cam_dev");
+    pModel.setFilter(QObject::tr("cam_dev_id ='%1' and cam_dev_id != '' and cam_dev_id is not null").arg(strCamId));
+    pModel.setEditStrategy(QSqlTableModel::OnManualSubmit);//OnManualSubmit OnFieldChange
+    pModel.select();
 
+    int rowCount = pModel.rowCount();
+
+    return rowCount > 0;
+}
 
 //chn==========================
 ///
diff --git a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.h b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.h
index 2eaf1dd..a3eaa3e 100644
--- a/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.h
+++ b/QiaoJiaSystem/VideoServer/QiaoJia/DB/LDBTool.h
@@ -51,6 +51,7 @@
     bool updateCamDevTable(Record_Cam_Dev camRec);
     std::list<Record_Cam_Dev> searchCamDevTableAll(void);
     int searchCamDevNumber(void);
+    bool searchCamDevByCamId(QString strCamId);
 
     //load_file_info
     bool insertLoadFileTable(Record_Load_File_info loadfileRec);
diff --git a/QiaoJiaSystem/YoloServer/main.cpp b/QiaoJiaSystem/YoloServer/main.cpp
index e223edd..79a0345 100644
--- a/QiaoJiaSystem/YoloServer/main.cpp
+++ b/QiaoJiaSystem/YoloServer/main.cpp
@@ -28,8 +28,8 @@
 
     IceRpcServer<YoloDetectServerI> server("yoloServer", 10003, "tcp");
     server.setMessageSizeMax(1024 * 1024 * 50);
-    server.setPoolInitSize(5);
-    server.setPoolMaxSize(5);
+    server.setPoolInitSize(1);
+    server.setPoolMaxSize(1);
     server.runWaitShutDown();
     return 0;
 }
diff --git a/QiaoJiaSystem/build/DataWebServer b/QiaoJiaSystem/build/DataWebServer
index e2ba793..4ba569c 100755
--- a/QiaoJiaSystem/build/DataWebServer
+++ b/QiaoJiaSystem/build/DataWebServer
Binary files differ
diff --git a/QiaoJiaSystem/build/EncodeServer b/QiaoJiaSystem/build/EncodeServer
new file mode 100755
index 0000000..59c0dd0
--- /dev/null
+++ b/QiaoJiaSystem/build/EncodeServer
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceDetectResourcesTest b/QiaoJiaSystem/build/FaceDetectResourcesTest
index 23a18af..1afe23e 100755
--- a/QiaoJiaSystem/build/FaceDetectResourcesTest
+++ b/QiaoJiaSystem/build/FaceDetectResourcesTest
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceDetectServer b/QiaoJiaSystem/build/FaceDetectServer
index 1e1a122..8822702 100755
--- a/QiaoJiaSystem/build/FaceDetectServer
+++ b/QiaoJiaSystem/build/FaceDetectServer
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceExtractServer b/QiaoJiaSystem/build/FaceExtractServer
index 0c0b37f..3dcfee4 100755
--- a/QiaoJiaSystem/build/FaceExtractServer
+++ b/QiaoJiaSystem/build/FaceExtractServer
Binary files differ
diff --git a/QiaoJiaSystem/build/FaceSearchServer b/QiaoJiaSystem/build/FaceSearchServer
index cecc349..2b07bce 100755
--- a/QiaoJiaSystem/build/FaceSearchServer
+++ b/QiaoJiaSystem/build/FaceSearchServer
Binary files differ
diff --git a/QiaoJiaSystem/build/RapidStructureApp b/QiaoJiaSystem/build/RapidStructureApp
index 91efcf5..39d29b2 100755
--- a/QiaoJiaSystem/build/RapidStructureApp
+++ b/QiaoJiaSystem/build/RapidStructureApp
Binary files differ
diff --git a/QiaoJiaSystem/build/RapidStructureAppRtsp b/QiaoJiaSystem/build/RapidStructureAppRtsp
index 0a22fa1..e99043b 100755
--- a/QiaoJiaSystem/build/RapidStructureAppRtsp
+++ b/QiaoJiaSystem/build/RapidStructureAppRtsp
Binary files differ
diff --git a/QiaoJiaSystem/build/RecordVideo b/QiaoJiaSystem/build/RecordVideo
index e4c0679..3663e73 100755
--- a/QiaoJiaSystem/build/RecordVideo
+++ b/QiaoJiaSystem/build/RecordVideo
Binary files differ
diff --git a/QiaoJiaSystem/build/StructureApp b/QiaoJiaSystem/build/StructureApp
index 3b33ca6..ac2d973 100755
--- a/QiaoJiaSystem/build/StructureApp
+++ b/QiaoJiaSystem/build/StructureApp
Binary files differ
diff --git a/QiaoJiaSystem/build/VideoAnalysFromHC b/QiaoJiaSystem/build/VideoAnalysFromHC
index 9eebece..cb2375c 100755
--- a/QiaoJiaSystem/build/VideoAnalysFromHC
+++ b/QiaoJiaSystem/build/VideoAnalysFromHC
Binary files differ
diff --git a/QiaoJiaSystem/build/YoloServer b/QiaoJiaSystem/build/YoloServer
old mode 100644
new mode 100755
index d04ef47..7b605a9
--- a/QiaoJiaSystem/build/YoloServer
+++ b/QiaoJiaSystem/build/YoloServer
Binary files differ
diff --git a/QiaoJiaSystem/build/config.db b/QiaoJiaSystem/build/config.db
old mode 100644
new mode 100755
index a1cb01d..662b88f
--- a/QiaoJiaSystem/build/config.db
+++ b/QiaoJiaSystem/build/config.db
Binary files differ
diff --git a/QiaoJiaSystem/build/config.json b/QiaoJiaSystem/build/config.json
index 768e0a2..887f935 100755
--- a/QiaoJiaSystem/build/config.json
+++ b/QiaoJiaSystem/build/config.json
@@ -1,19 +1,19 @@
 {
   "mainServerIp": "192.168.1.182",
   "mainServerPort": "3697",
-  "logPath": "/home/dell/work/log/",
+  "logPath": "/home/basic/work/log/",
   "DEV_ID": "DSVAD010120181119",
   "ES_IP": "192.168.1.122",
   "ES_PORT": 9200,
   "FaceSeachSleepTime": 60,
   "TotalLoadSize": "500",
-  "buildAddr": "/home/dell/Apps/QiaoJiaSystem/build/",
-  "cutPath": "/home/dell/work/qiaojia/cut",
+  "buildAddr": "/home/basic/Apps/QiaoJiaSystem/build/",
+  "cutPath": "/home/basic/work/qiaojia/cut",
   "erlCookie": "",
   "erlFatherNode": "",
   "erlNode": "",
   "erlPath": "",
-  "loadPath": "/home/dell/work/qiaojia/load",
+  "loadPath": "/home/basic/work/qiaojia/load",
   "localPasswd": "123456",
   "netIfName": "enp3s0",
   "srsAddr": "rtmp://192.168.1.122:1934/live/",
@@ -21,5 +21,6 @@
   "redis_ip": "127.0.0.1",
   "redis_buf_len": 750,
   "encode_thread_num": 3,
-  "FaceDetectionSampleSize": 720
+  "FaceDetectionSampleSize": 720,
+  "clusterID" : "sssss"
 }
diff --git a/QiaoJiaSystem/build/scpToSer.sh b/QiaoJiaSystem/build/scpToSer.sh
index 1bffb1e..4dcb35e 100644
--- a/QiaoJiaSystem/build/scpToSer.sh
+++ b/QiaoJiaSystem/build/scpToSer.sh
@@ -9,7 +9,8 @@
     echo $1
     des_pass=123
     expect -c "
-    spawn scp -P44100 ${CUR_PATH}"/"$1 dell@58.118.225.79:/home/dell/Apps/QiaoJiaSystem/build 
+#    spawn scp -P44100 ${CUR_PATH}"/"$1 dell@58.118.225.79:/home/dell/Apps/QiaoJiaSystem/build 
+    spawn scp  ${CUR_PATH}"/"$1 basic@192.168.1.182:/home/basic/Apps/QiaoJiaSystem/build 
     expect \"password:\"
     send \"${des_pass}\r\"
     expect eof
@@ -31,6 +32,7 @@
     sendFile RecordVideo
     sendFile VideoAnalysFromHC
     sendFile YoloServer
+    sendFile EncodeServer
     sendFile killAll.sh
     #sendFile runAll.sh
     #sendFile runWebSer.sh

--
Gitblit v1.8.0