From c8d9556e2aa8e64f956a5b516c8c80dbbc195b5d Mon Sep 17 00:00:00 2001
From: pansen <pansen626@sina.com>
Date: 星期二, 05 三月 2019 09:25:30 +0800
Subject: [PATCH] 添加GB28181模块
---
QiaoJiaSystem/DataManagerServer/http_configserver.cpp | 12 +-
QiaoJiaSystem/FaceSearchServer/LoadFeaTool/CMakeLists.txt | 1
QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt | 43 ++++--
QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h | 97 ++++++++-------
QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h | 3
QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h | 7
QiaoJiaSystem/GB28181DecoderModel/GlobalSignalWaitLock.hpp | 1
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h | 27 +++-
QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp | 3
QiaoJiaSystem/VideoToImageMulth/main.cpp | 73 ++++++++++++
QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp | 59 +++++++++
11 files changed, 243 insertions(+), 83 deletions(-)
diff --git a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
index d53886a..d07d06a 100644
--- a/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
+++ b/QiaoJiaSystem/DataManagerServer/http_configserver.cpp
@@ -1446,12 +1446,12 @@
fdfsClient.rwLock.unlock();
}
- //# http client 127.0.0.1:9999/resetFdfs
- std::string http_cmd = "http://127.0.0.1:9999/resetFdfs";
- HttpRequestWithCrul httpRequestWithCrul;
- std::string response_bak = "";
- std::string postParams_bak = "";
- httpRequestWithCrul.curl_post_req("http://127.0.0.1:9999/resetFdfs", postParams_bak, response_bak);
+// //# http client 127.0.0.1:9999/resetFdfs
+// std::string http_cmd = "http://127.0.0.1:9999/resetFdfs";
+// HttpRequestWithCrul httpRequestWithCrul;
+// std::string response_bak = "";
+// std::string postParams_bak = "";
+// httpRequestWithCrul.curl_post_req("http://127.0.0.1:9999/resetFdfs", postParams_bak, response_bak);
}
} else {
return "{\"ret_status\": \"浼犺緭閿欒锛岃妫�鏌ワ紒\"}";
diff --git a/QiaoJiaSystem/FaceSearchServer/LoadFeaTool/CMakeLists.txt b/QiaoJiaSystem/FaceSearchServer/LoadFeaTool/CMakeLists.txt
index 2c8486f..e2cee97 100644
--- a/QiaoJiaSystem/FaceSearchServer/LoadFeaTool/CMakeLists.txt
+++ b/QiaoJiaSystem/FaceSearchServer/LoadFeaTool/CMakeLists.txt
@@ -20,7 +20,6 @@
../../../../BasicPlatForm/libs/jsoncpp/lib
)
-
add_executable(syncDBClient
main.cpp
diff --git a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h
index 1f495fc..a593baa 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h
+++ b/QiaoJiaSystem/GB28181DecoderModel/FFmpegDecoderJPG.h
@@ -13,13 +13,12 @@
#include <iostream>
#include <unistd.h>
#include <MyQueue.h>
-#include <Debug.h>
#include <atomic>
-#include "GlobalSignalWaitLock.hpp"
#include "opencv2/core.hpp"
#include "opencv2/highgui.hpp"
#include <list>
+#include "GlobalSignalWaitLock.hpp"
#include "basic_struct_for_video_image.h"
extern "C"
diff --git a/QiaoJiaSystem/GB28181DecoderModel/GlobalSignalWaitLock.hpp b/QiaoJiaSystem/GB28181DecoderModel/GlobalSignalWaitLock.hpp
index 83b1365..de41b0c 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/GlobalSignalWaitLock.hpp
+++ b/QiaoJiaSystem/GB28181DecoderModel/GlobalSignalWaitLock.hpp
@@ -6,6 +6,7 @@
#define GB28181SDK_GLOBALSIGNALWAITLOCK_H
#include <iostream>
+#include <Debug.h>
#include <basic/util/thread/RWLock.hpp>
//#define TryCath(CODE) try { \
diff --git a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
index 77862e7..8bc24d3 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
+++ b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
@@ -6,6 +6,7 @@
#include <qt5/QtCore/QDateTime>
#include <basic/util/app/AppPreference.hpp>
#include "VideoCaptureElementWithRtp.h"
+#include "RtspAnalysManager.h"
//std::string BASICGB28181::VideoCaptureElementWithRtp::m_chanPubID;
//BASICGB28181::FFmpegDecoderJPG BASICGB28181::VideoCaptureElementWithRtp::m_fFmpegDecoderJPG;
@@ -154,7 +155,7 @@
cv::Mat copyMat;
std::string imageName = p_this->m_fFmpegDecoderJPG.GetImageName();
p_this->m_image.copyTo(copyMat);
-// m_pManager->SaveImageToRedis(m_camId, imageName, copyMat);
+ m_pManager->SaveImageToRedis(p_this->m_chanPubID, imageName, copyMat);
}
p_this->submit();
}
diff --git a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h
index a4fa33b..162b8fe 100644
--- a/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h
+++ b/QiaoJiaSystem/GB28181DecoderModel/VideoCaptureElementWithRtp.h
@@ -8,7 +8,10 @@
#include "FFmpegDecoderJPG.h"
#include "28181SDK.h"
#include <basic/pipe/PipeElement.h>
-#include "GlobalSignalWaitLock.hpp"
+//#include <RtspAnalysManager.h>
+//#include <VideoToImageMulth/RtspAnalysManager.h>
+
+class RtspAnalysManager;
namespace BASICGB28181 {
@@ -17,7 +20,6 @@
explicit VideoCaptureElementWithRtp(std::string &chanPubID, int fps, int streamTransType, int gpuIdx = -1);
virtual ~VideoCaptureElementWithRtp();
-
/***
* 鑾峰彇褰撳墠瀹炴椂娴佹帴鏀舵暟鎹嚎绋嬭繍琛岀姸鎬�
@@ -47,6 +49,7 @@
FFmpegDecoderJPG m_fFmpegDecoderJPG;
cv::Mat m_image;
long m_userdata;
+ RtspAnalysManager *m_pManager;
std::atomic<bool> m_running;
std::atomic<bool> m_waitSignal;
diff --git a/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt b/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt
index f8df435..8f0f5c9 100644
--- a/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt
+++ b/QiaoJiaSystem/VideoToImageMulth/CMakeLists.txt
@@ -5,6 +5,7 @@
set(CMAKE_BUILD_TYPE debug)
add_compile_options(-fPIC)
add_definitions(-DGLOG)
+add_definitions(-DGB28181)
add_definitions(-DDEBUG_ERR -DDEBUG_INFO -fpermissive)
add_definitions(-Wall -Wextra)
SET(LIBS
@@ -35,9 +36,12 @@
jsoncpp
pthread
hiredis
+ 28181sdk
+ mysqlclient
+ StreamParse
+
)
include_directories(
-
#glog
../../../BasicPlatForm/libs/glog/include
./rpc
@@ -46,11 +50,14 @@
../VideoServer/QiaoJia/DB
../VideoServer/QiaoJia/dispatchTool
../StructureApp/
+ ../GB28181DecoderModel
+ ../VideoToImageMulth
+ ../../../BasicPlatForm/basic/pipe_element/ffmpeg/
+ ../../../BasicPlatForm/basic/debug/
../../../BasicPlatForm/
../../../BasicPlatForm/basic/pipe/
-
../../../BasicPlatForm/libs/opencv/include
@@ -66,9 +73,11 @@
../../BasicPlatForm/libs/hiredis-master/include
../../../BasicPlatForm/basic/timer_counter/
+ ../../../BasicPlatForm/libs/GB28181/include
)
link_directories(
+ ../../../BasicPlatForm/libs/GB28181/libs
#glog
../../../BasicPlatForm/libs/glog/lib
../../../BasicPlatForm/libs/openssl/lib
@@ -76,26 +85,30 @@
../../../BasicPlatForm/libs/ffmpeg/lib
../../../BasicPlatForm/libs/jsoncpp/lib
-# ../../../BasicPlatForm/libs/libuuid/lib
+ # ../../../BasicPlatForm/libs/libuuid/lib
../../../BasicPlatForm/libs/Ice-3.7.0/lib64
../../../BasicPlatForm/libs/hiredis-master/lib
)
add_executable(${PROJECT_NAME}
- ../../../BasicPlatForm/basic/pipe_element/ffmpeg/VideoChangeScore.cpp
+ ../GB28181DecoderModel/FFmpegDecoderJPG.cpp
+ ../GB28181DecoderModel/GB28181Server.cpp
+ ../GB28181DecoderModel/VideoCaptureElementWithRtp.cpp
+ ../../../BasicPlatForm/basic/pipe_element/ffmpeg/VideoChangeScore.cpp
../../../BasicPlatForm/basic/util/BASE64/Base64.cpp
-# ../../../BasicPlatForm/basic/pipe_element/ffmpeg/FfmpegElement.cpp
- ../VideoServer/QiaoJia/DB/LDBTool.cpp
- ./rpc/RtspAnalysServer.cpp
- RtspCaptureElement.cpp
- RtspAnalysManager.cpp
- ../StructureApp/HiredisTool.cpp
- ../../../BasicPlatForm/basic/timer_counter/Clocktimer.h
- ../../../BasicPlatForm/basic/timer_counter/Clocktimer.cpp
- ./RtspImageRedis.h
- ./RtspImageRedis.cpp
- main.cpp
+ # ../../../BasicPlatForm/basic/pipe_element/ffmpeg/FfmpegElement.cpp
+ ../VideoServer/QiaoJia/DB/LDBTool.cpp
+ ./rpc/RtspAnalysServer.cpp
+ RtspCaptureElement.cpp
+ RtspAnalysManager.cpp
+ ../StructureApp/HiredisTool.cpp
+ ../../../BasicPlatForm/basic/timer_counter/Clocktimer.h
+ ../../../BasicPlatForm/basic/timer_counter/Clocktimer.cpp
+ ../../../BasicPlatForm/basic/util/net_config/net_config.cpp
+ ./RtspImageRedis.h
+ ./RtspImageRedis.cpp
+ main.cpp
)
target_link_libraries(${PROJECT_NAME}
${LIBS}
diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
index dd25e47..a5ea3b0 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.cpp
@@ -114,9 +114,9 @@
* @return -1 娣诲姞澶辫触,0 娣诲姞鎴愬姛
*/
int RtspAnalysManager::addCamera(const std::string &index, const std::string &rtsp) {
+#ifndef GB28181
auto lst = m_lDBTool->searchCamDevTableAll();
Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
-
if (m_controllers.find(index) == m_controllers.end()) {
INFO("MYH DEBUG HERE");
if (m_currentCount >= m_maxCount) {
@@ -139,6 +139,38 @@
//DBG("removeCamera " << index);
return addCamera(index, rtsp);
}
+#else
+ //#todo
+ auto lst = m_lDBTool->searchCamDevTableAll();
+ Record_Config lst_dev = m_lDBTool->searchConfigTableWithinServerInfo();
+
+ //#todo end
+ if (m_controllers_videoCapElem.find(index) == m_controllers_videoCapElem.end()) {
+ INFO("MYH DEBUG HERE");
+ if (m_currentCount >= m_maxCount) {
+ ERR("addCamera faild, camera's num is full!")
+ return -1;
+ }
+ INFO("RTSP: " << rtsp << " INDEX:" << index);
+ m_imgRedisControllers[index] = new RtspImageRedisElement(index);
+ m_imgRedisControllers[index]->start();
+
+ //VideoCaptureElementWithRtp(std::string &chanPubID, int fps, int streamTransType, int gpuIdx = -1)
+ m_controllers_videoCapElem[index] = new BASICGB28181::VideoCaptureElementWithRtp(const_cast<string &>(index),
+ 25, 1, 0);
+ m_controllers_videoCapElem[index]->start();
+ m_controllers_videoCapElem[index]->SetVideoMinMaxSeconds(lst_dev.n_cut_min_duration,
+ lst_dev.n_cut_max_duration);
+ m_currentCount++;
+ return 0;
+
+ } else {
+ removeCamera(index);
+ INFO("removeCamera " << index);
+ //DBG("removeCamera " << index);
+ return addCamera(index, rtsp);
+ }
+#endif
}
/**
@@ -148,6 +180,7 @@
*/
int RtspAnalysManager::removeCamera(const std::string &index) {
INFO("MYH DEBUG HERE");
+#ifndef GB28181
if (m_controllers.find(index) == m_controllers.end())return -1;
auto controller = m_controllers[index];
controller->stop();
@@ -155,6 +188,16 @@
delete controller;
m_controllers.erase(index);
m_currentCount--;
+
+#else
+ if (m_controllers_videoCapElem.find(index) == m_controllers_videoCapElem.end())return -1;
+ auto controller = m_controllers_videoCapElem[index];
+ controller->stop();
+ controller->wait();
+ delete controller;
+ m_controllers_videoCapElem.erase(index);
+ m_currentCount--;
+#endif
auto imgRedis = m_imgRedisControllers[index];
imgRedis->stop();
@@ -171,6 +214,7 @@
*/
int RtspAnalysManager::removeAll() {
INFO("MYH DEBUG HERE");
+#ifndef GB28181
for (auto controller: m_controllers) {
controller.second->stop();
}
@@ -179,9 +223,18 @@
delete controller.second;
}
m_controllers.clear();
+#else
+ for (auto controller: m_controllers_videoCapElem) {
+ controller.second->stop();
+ }
+ for (auto controller: m_controllers_videoCapElem) {
+ controller.second->wait();
+ delete controller.second;
+ }
+ m_controllers_videoCapElem.clear();
+#endif
INFO("MYH DEBUG HERE");
-
for (auto controller: m_imgRedisControllers) {
controller.second->stop();
}
@@ -189,7 +242,7 @@
controller.second->wait();
delete controller.second;
}
- m_controllers.clear();
+ m_imgRedisControllers.clear();
m_currentCount = 0;
diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h
index bfa08be..2612548 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspAnalysManager.h
@@ -9,24 +9,32 @@
#include <map>
#include "RtspCaptureElement.h"
#include "RtspImageRedis.h"
-#include <VideoServer/QiaoJia/DB/LDBTool.h>
+#include <VideoCaptureElementWithRtp.h>
+#include <QiaoJia/DB/LDBTool.h>
#include <basic/util/app/AppPreference.hpp>
#include "RtspAnalysServer.h"
+//#include <GB28181DecoderModel/VideoCaptureElementWithRtp.h>
+//#include <VideoToImageMulth/rpc/RtspAnalysServer.h>
+
+//using BASICGB28181::VideoCaptureElementWithRtp;
//鐢ㄦ潵瀹炵幇recordVideo鐨凴PC鐨勬帴鍙g被
-class RtspAnalysManager :public ::RtspAnalys::RtspAnalysServer{
+class RtspAnalysManager : public ::RtspAnalys::RtspAnalysServer {
public:
- RtspAnalysManager():m_maxCount(50), m_currentCount(0){
- m_lDBTool=new LDBTool;
+ RtspAnalysManager() : m_maxCount(50), m_currentCount(0) {
+ m_lDBTool = new LDBTool;
init();
}
+
RtspAnalysManager(LDBTool *_dbTool);
- virtual ::std::string recordVideo(const ::std::string&, const ::Ice::Current& = ::Ice::emptyCurrent);
+
+ virtual ::std::string recordVideo(const ::std::string &, const ::Ice::Current & = ::Ice::emptyCurrent);
+
virtual ~RtspAnalysManager();
- int addCamera(const std::string &, const std::string& rtsp);
+ int addCamera(const std::string &, const std::string &rtsp);
int removeCamera(const std::string &);
@@ -37,7 +45,7 @@
int getCurrentCamCount();
// 鏍规嵁camId淇濆瓨img鍒癛edis,img鐨凨ey涓篿mageName
- bool SaveImageToRedis(const std::string& camId,const std::string& imageName,const cv::Mat& img);
+ bool SaveImageToRedis(const std::string &camId, const std::string &imageName, const cv::Mat &img);
private:
void init();
@@ -49,8 +57,11 @@
//淇濆瓨CamID鍜孯tspCaptureElement鐨勬槧灏勫叧绯�
std::map<std::string, RtspCaptureElement *> m_controllers;
+ //淇濆瓨CamID鍜孷ideoCaptureElementWithRtp鐨勬槧灏勫叧绯�
+ std::map<std::string, BASICGB28181::VideoCaptureElementWithRtp *> m_controllers_videoCapElem;
+
//淇濆瓨CamID鍜孯tspImageRedisElement鐨勬槧灏勫叧绯�
- std::map<std::string, RtspImageRedisElement*> m_imgRedisControllers;
+ std::map<std::string, RtspImageRedisElement *> m_imgRedisControllers;
//褰撳墠鎽勫儚澶寸殑鏁伴噺
int m_currentCount;
// 鎽勫儚澶寸殑鏈�澶ф暟閲�
diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h b/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h
index 144b561..51c5a86 100644
--- a/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h
+++ b/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h
@@ -5,62 +5,71 @@
#include <opencv2/opencv.hpp>
#include "../StructureApp/HiredisTool.h"
#include <atomic>
+
class RtspAnalysManager;
+
struct CvCapture_FFMPEG;
- /**
- * 浣跨敤ffmpeg灏佽鐨勮棰戦噰闆嗘祦姘村厓绱�
- * 杈撳叆锛宺tsp鍦板潃鎴栨枃浠讹紙mp4鎴朼vi锛夎矾寰勶紝杈撳嚭opencv涓殑cv::Mat
- * 鏀寔GPU纭В鐮�
- * 涓昏瀹屾垚瑙嗛甯х殑鑾峰彇浠ュ強鍚慍vCapture_FFMPEG浼犻�佹暟鎹�
- */
- class RtspCaptureElement: public TimerElement {
- public:
- RtspCaptureElement(const std::string& path,const std::string& camId, int fps = 30, int reOpenTime = -1, int gpuIndex = -1,RtspAnalysManager* manager= nullptr);
- //淇濆瓨瑙嗛鎺ュ彛,浠嶳tspAnalysManager鍙戣捣璋冪敤
- void SaveVideo(const std::string& strImageName);
+/**
+ * 浣跨敤ffmpeg灏佽鐨勮棰戦噰闆嗘祦姘村厓绱�
+ * 杈撳叆锛宺tsp鍦板潃鎴栨枃浠讹紙mp4鎴朼vi锛夎矾寰勶紝杈撳嚭opencv涓殑cv::Mat
+ * 鏀寔GPU纭В鐮�
+ * 涓昏瀹屾垚瑙嗛甯х殑鑾峰彇浠ュ強鍚慍vCapture_FFMPEG浼犻�佹暟鎹�
+ */
+class RtspCaptureElement : public TimerElement {
+public:
+ RtspCaptureElement(const std::string &path, const std::string &camId, int fps = 30, int reOpenTime = -1,
+ int gpuIndex = -1, RtspAnalysManager *manager = nullptr);
- //璁剧疆淇濆瓨瑙嗛鐨勬渶灏忓拰鏈�澶ч暱搴�,鍗曚綅鏄,瀹為檯鐨勮繍琛屾儏鍐垫湁涓�浜涘樊璺濓紝闇�瑕佸畬鍠�
- void SetVideoMinMaxSeconds(const int minSeconds,const int maxSeconds);
- private:
- //绾跨▼鎵ц鍑芥暟
- virtual void timerFunc() override;
- //绾跨▼鐨勪竴浜涘彉閲忓垵濮嬪寲,绾跨▼鍚姩鐨勬椂鍊欒皟鐢�
- virtual void threadInitial() override;
- //绾跨▼缁撴潫鍑芥暟鐨勬椂鍊欒皟鐢�,瀹屾垚涓�浜涜祫婧愮殑閲婃斁
- virtual void threadClosing() override;
- //鎵撳紑瑙嗛
- void openVideo();
+ //淇濆瓨瑙嗛鎺ュ彛,浠嶳tspAnalysManager鍙戣捣璋冪敤
+ void SaveVideo(const std::string &strImageName);
- //鏍规嵁timeStamp鍒涘缓璺緞
- std::string MakeDir(const std::string& timeStamp);
- private:
- //鐢ㄦ潵鎶撳彇瑙嗛鐨凢fmpeg鐨勫皝瑁呯被
- CvCapture_FFMPEG* m_capture;
- //淇濆瓨瑙嗛娴佺殑璺緞,绫讳技浜巖tsp://admin:a1234567@192.168.1.201:554/h264/ch2/main/av_stream
- std::string m_path;
+ //璁剧疆淇濆瓨瑙嗛鐨勬渶灏忓拰鏈�澶ч暱搴�,鍗曚綅鏄,瀹為檯鐨勮繍琛屾儏鍐垫湁涓�浜涘樊璺濓紝闇�瑕佸畬鍠�
+ void SetVideoMinMaxSeconds(const int minSeconds, const int maxSeconds);
- // Redis鐨勫伐鍏风被
+private:
+ //绾跨▼鎵ц鍑芥暟
+ virtual void timerFunc() override;
+
+ //绾跨▼鐨勪竴浜涘彉閲忓垵濮嬪寲,绾跨▼鍚姩鐨勬椂鍊欒皟鐢�
+ virtual void threadInitial() override;
+
+ //绾跨▼缁撴潫鍑芥暟鐨勬椂鍊欒皟鐢�,瀹屾垚涓�浜涜祫婧愮殑閲婃斁
+ virtual void threadClosing() override;
+
+ //鎵撳紑瑙嗛
+ void openVideo();
+
+ //鏍规嵁timeStamp鍒涘缓璺緞
+ std::string MakeDir(const std::string &timeStamp);
+
+private:
+ //鐢ㄦ潵鎶撳彇瑙嗛鐨凢fmpeg鐨勫皝瑁呯被
+ CvCapture_FFMPEG *m_capture;
+ //淇濆瓨瑙嗛娴佺殑璺緞,绫讳技浜巖tsp://admin:a1234567@192.168.1.201:554/h264/ch2/main/av_stream
+ std::string m_path;
+
+ // Redis鐨勫伐鍏风被
// HiredisTool m_redisTool;
- //瀵逛繚瀛樺埌Redis鐨勫浘鐗囪繘琛岃鏁�
- std::atomic<int> m_picCount{0};
- //GPU鐨勭储寮�
- int m_gpuIndex;
+ //瀵逛繚瀛樺埌Redis鐨勫浘鐗囪繘琛岃鏁�
+ std::atomic<int> m_picCount{0};
+ //GPU鐨勭储寮�
+ int m_gpuIndex;
- //鎵撳紑瑙嗛娴佸け璐ョ殑鏃跺�欙紝sleep涓�娈垫椂闂�
- int m_reopenTime;
+ //鎵撳紑瑙嗛娴佸け璐ョ殑鏃跺�欙紝sleep涓�娈垫椂闂�
+ int m_reopenTime;
- //鎽勫儚鏈篒D
- std::string m_camId;
+ //鎽勫儚鏈篒D
+ std::string m_camId;
- //鐢ㄦ潵淇濆瓨褰曞儚瑙嗛鐨勮矾寰�
- std::string m_cutPath;
+ //鐢ㄦ潵淇濆瓨褰曞儚瑙嗛鐨勮矾寰�
+ std::string m_cutPath;
- //鍑犲紶鍥句涪涓�寮�,鐩墠鏄�8寮犱涪涓�寮�
- const int m_nPicsPickOne = 8;
+ //鍑犲紶鍥句涪涓�寮�,鐩墠鏄�8寮犱涪涓�寮�
+ const int m_nPicsPickOne = 8;
- RtspAnalysManager * m_pManager;
- };
+ RtspAnalysManager *m_pManager;
+};
#endif // VIDEOCAPTUREELEMENT_H
diff --git a/QiaoJiaSystem/VideoToImageMulth/main.cpp b/QiaoJiaSystem/VideoToImageMulth/main.cpp
index 4eced3d..f0e6bcb 100644
--- a/QiaoJiaSystem/VideoToImageMulth/main.cpp
+++ b/QiaoJiaSystem/VideoToImageMulth/main.cpp
@@ -14,7 +14,9 @@
#include <basic/util/file/FileUtil.h>
#include <basic/util/app/AppPreference.hpp>
#include <basic/util/app/AppConfig.h>
-#include <basic/util/app/AppConfig.h>
+
+#include <GB28181Server.h>
+#include <basic/util/net_config/net_config.h>
static void startManager(LDBTool *_dbTool) {
RtspAnalysManager rtspAnalysManager(_dbTool);
@@ -23,6 +25,24 @@
}
}
+std::string getLocalIp() {
+ unsigned char netmask_old[15] = {0};
+ unsigned char gateway_old[15] = {0};
+ unsigned char ip_old[15] = {0};
+
+ std::string net_ifname = appConfig.getStringProperty("netIfName");
+ std::string str_ip;
+
+ if (GetIpAddress(net_ifname.c_str(), ip_old)) {
+ std::string ip_old_temp((char *) ip_old);
+ str_ip = ip_old_temp;
+ } else {
+// value["ipaddr"] = "";
+ ERR("not get ip addr");
+ }
+ assert(!str_ip.empty());
+ return std::move(str_ip);
+}
int main(int argc, char **argv) {
std::cout << __DATE__ << " " << __TIME__ << std::endl;
@@ -42,6 +62,57 @@
appPref.setIntData("CamStep", atoi(argv[2]));
appPref.setIntData("RpcServerPort", atoi(argv[3]));
+ //#todo search from db
+ MysqlDBServerCfg mysqlDBServerCfg;
+ mysqlDBServerCfg.Host = getLocalIp();
+ mysqlDBServerCfg.Port = 3306;
+ mysqlDBServerCfg.UserName = "root";
+ mysqlDBServerCfg.Passwd = "123456";
+ mysqlDBServerCfg.DBName = "EGEyesForVSS";
+ mysqlDBServerCfg.DBConnCount = 5;
+
+
+ //#todo search from db
+ GBServerCfg gbServerCfg;
+ gbServerCfg.SvrIp = getLocalIp(); // 鍥芥爣鏈嶅姟鐨刬p鍦板潃 (鏈満鐨刬p鍦板潃)
+ gbServerCfg.SvrPort = 7060; // 鍥芥爣鏈嶅姟鐩戝惉鐨勭鍙�
+ gbServerCfg.SvrPubID = "44120000002000000001"; // 鍥芥爣鏈嶅姟鍣ㄧ殑ID
+ gbServerCfg.bMD5Auth = false; // 鏄惁闇�瑕丮D5鍔犲瘑
+ gbServerCfg.UserName = "44120100002000000002"; // 鍥芥爣鏈嶅姟鐨勭敤鎴峰悕 (涓嬬骇璁惧娉ㄥ唽鐨勭敤鎴峰悕)
+ gbServerCfg.Passwd = "123456"; // 鍥芥爣鏈嶅姟鐨勫瘑鐮� (涓嬬骇璁惧娉ㄥ唽鐨勫瘑鐮�)
+ gbServerCfg.SubScribeTime = 3600; // 璁㈤槄鏃堕棿 濡傛灉涓�0 琛ㄧず涓嶈闃�
+
+ SpinLock spinLock;
+
+ bool running = false;
+ bool serinit = false;
+ auto func = [&] {
+ spinLock.lock();
+ GB28181Server m_gbs;
+ m_gbs.setMysqlConnParam(mysqlDBServerCfg);
+ m_gbs.setGBServerParam(gbServerCfg);
+ DBG("initServer start before");
+ running = m_gbs.initServer();
+ DBG("initServer start after");
+
+ spinLock.unlock();
+ while (running) {
+ usleep(4000);
+ }
+
+ };
+
+ std::thread thd(func);
+
+ usleep(400);
+ // ---------------------娴嬭瘯------------------------
+ spinLock.lock();
+ if (!running) {
+ ERR("running is false << DB init error");
+ exit(0);
+ }
+ DBG("test start");
+
appPref.setStringData("user.loop.absolute.path", appConfig.getStringProperty("cutPath"));
IceRpcServer<RtspAnalysManager> server("RtspAnalysServer", appPref.getIntData("RpcServerPort"), "tcp");
server.setMessageSizeMax(1024 * 1024 * 50);
--
Gitblit v1.8.0