From 979bc003bce710bf300bc2bd87a8278585678763 Mon Sep 17 00:00:00 2001 From: pansen <pansen626@sina.com> Date: 星期四, 07 三月 2019 14:47:14 +0800 Subject: [PATCH] GB28181集成完成。录像bug暂未解决,已注释 --- QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h | 94 +++++++++++++++++++++++++++-------------------- 1 files changed, 54 insertions(+), 40 deletions(-) diff --git a/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h b/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h index 981dc7a..51c5a86 100644 --- a/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h +++ b/QiaoJiaSystem/VideoToImageMulth/RtspCaptureElement.h @@ -5,57 +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纭В鐮� - */ - 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 SaveVideo(const std::string& strImageName); - void SetVideoMinMaxSeconds(const int minSeconds,const int maxSeconds); - private: - virtual void timerFunc() override; - virtual void threadInitial() override; - virtual void threadClosing() override; - void openVideo(); +/** + * 浣跨敤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); - // - 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; + //淇濆瓨瑙嗛鎺ュ彛,浠嶳tspAnalysManager鍙戣捣璋冪敤 + void SaveVideo(const std::string &strImageName); - // Redis鐨勫伐鍏风被 - HiredisTool m_redisTool; + //璁剧疆淇濆瓨瑙嗛鐨勬渶灏忓拰鏈�澶ч暱搴�,鍗曚綅鏄,瀹為檯鐨勮繍琛屾儏鍐垫湁涓�浜涘樊璺濓紝闇�瑕佸畬鍠� + void SetVideoMinMaxSeconds(const int minSeconds, const int maxSeconds); - //瀵逛繚瀛樺埌Redis鐨勫浘鐗囪繘琛岃鏁� - std::atomic<int> m_picCount{0}; - //GPU鐨勭储寮� - int m_gpuIndex; +private: + //绾跨▼鎵ц鍑芥暟 + virtual void timerFunc() override; - //鎵撳紑瑙嗛娴佸け璐ョ殑鏃跺�欙紝sleep涓�娈垫椂闂� - int m_reopenTime; + //绾跨▼鐨勪竴浜涘彉閲忓垵濮嬪寲,绾跨▼鍚姩鐨勬椂鍊欒皟鐢� + virtual void threadInitial() override; - //鎽勫儚鏈篒D - std::string m_camId; + //绾跨▼缁撴潫鍑芥暟鐨勬椂鍊欒皟鐢�,瀹屾垚涓�浜涜祫婧愮殑閲婃斁 + virtual void threadClosing() override; - //鐢ㄦ潵淇濆瓨褰曞儚瑙嗛鐨勮矾寰� - std::string m_cutPath; + //鎵撳紑瑙嗛 + void openVideo(); - //鍑犲紶鍥句涪涓�寮�,鐩墠鏄�4寮犱涪涓�寮� - const int m_nPicsPickOne = 8; + //鏍规嵁timeStamp鍒涘缓璺緞 + std::string MakeDir(const std::string &timeStamp); - //姣忓彴鎽勫儚鏈轰繚瀛樺埌Redis鐨勫浘鐗囨暟閲忕殑鏈�澶у�� - //const int M_CAM_PIC_MAX_COUNT = 50; +private: + //鐢ㄦ潵鎶撳彇瑙嗛鐨凢fmpeg鐨勫皝瑁呯被 + CvCapture_FFMPEG *m_capture; + //淇濆瓨瑙嗛娴佺殑璺緞,绫讳技浜巖tsp://admin:a1234567@192.168.1.201:554/h264/ch2/main/av_stream + std::string m_path; - RtspAnalysManager * m_pManager; - }; + // Redis鐨勫伐鍏风被 +// HiredisTool m_redisTool; + + //瀵逛繚瀛樺埌Redis鐨勫浘鐗囪繘琛岃鏁� + std::atomic<int> m_picCount{0}; + //GPU鐨勭储寮� + int m_gpuIndex; + + //鎵撳紑瑙嗛娴佸け璐ョ殑鏃跺�欙紝sleep涓�娈垫椂闂� + int m_reopenTime; + + //鎽勫儚鏈篒D + std::string m_camId; + + //鐢ㄦ潵淇濆瓨褰曞儚瑙嗛鐨勮矾寰� + std::string m_cutPath; + + //鍑犲紶鍥句涪涓�寮�,鐩墠鏄�8寮犱涪涓�寮� + const int m_nPicsPickOne = 8; + + RtspAnalysManager *m_pManager; +}; #endif // VIDEOCAPTUREELEMENT_H -- Gitblit v1.8.0