目录
一、视频监控汇聚平台
1、概述
2、视频接入能力
3、视频汇聚能力
二、大华DSS平台
1、DSS平台概述
2、大华DSS平台的主要特点
(1)高可用性
(2)高可靠性
(3)易维护性
(4)灵活的扩展性
(5)智能分析功能
(6)完善的权限管理
(7)丰富的场景应用
三、代码和解释
1、代码和注释
2、函数功能说明
(1)引入的头文件
(2)自定义结构体
(3)类定义
(4)成员方法
(5)成员变量
四、效果展示
一、视频监控汇聚平台
1、概述
视频监控接入汇聚平台是集成了视频资源接入、汇聚、存储、处理、分析、运维等多种功能的综合性平台,旨在实现不同品牌、不同协议、不同型号的视频监控资源的统一接入、汇聚、存储、管理和应用。
接入汇聚平台支持多种接入协议,如GB/T28181、RTSP、ONVIF、RTMP等通用协议以及一些特定的协议,实现视频资源的集中管理和融合应用,同时能够提供API接口供应用系统进行调用。
2、视频接入能力
平台能够实现接入不同品牌的视频监控平台、视频相关设备、外围设备等等;包括海康威视、浙江大华、苏州科达、杭州宇视、Panasonic和axis等。
支持国际和国内的一些标准对接协议,包括sdk协议、GB/T28181协议、ehome/ISUP协议、主动注册协议等等。可以通过各种协议,接入IPC、DVR、DVS、NVR等设备,以及一些大型的视频监控平台,包括海康威视、浙江大华、苏州科达、杭州宇视等主流品牌的监控平台,对于有些特有品牌的平台,也能够通过SDK接口、私有协议等方式接入进入本系统平台(国外品牌包括:Panasonic和axis等);
3、视频汇聚能力
平台通过流媒体传输协议接入各种视频源设备,能够同时接入大量的视频终端设备;将分散的各类视频资源进行统一汇聚、整合和集中管理。
通过分布式架构和流媒体传输技术,平台可以轻松应对成千上万路视频流的接入需求;这种能力使得平台能够应对大规模的视频监控需求,实现视频监控资源的全面覆盖和高效利用。
汇聚能力体现在多种方式、大规模设备接入、视频流整合与管理、灵活的播放与分发、高并发访问与负载均衡以及丰富的管理功能等多个方面。这些能力共同构成了视频监控汇聚平台的核心竞争力,为用户提供了高效、智能、便捷的视频监控解决方案。
二、大华DSS平台
1、DSS平台概述
大华DSS(Disaster Recovery Switching)平台是大华股份推出的一款智能视频监控平台,它专注于为用户提供高效、稳定的视频监控服务,具备高可用性、高可靠性、易维护性等特点。该平台采用了先进的视频编码技术、网络技术和大华独有的视频存储技术,可广泛应用于公安、交通、金融、教育等各类监控场景。
2、大华DSS平台的主要特点
(1)高可用性
通过支持热插拔硬盘、模块化设计等手段,确保了系统的高可用性。即使在硬件故障的情况下,也能实现快速切换,保证视频监控业务的连续性。
(2)高可靠性
采用冗余设计,确保了关键组件的双备份,如电源、网络、存储等,有效降低了系统故障的风险。
(3)易维护性
通过图形化界面、智能化诊断等功能,简化了系统运维工作,降低了运维成本。
强大的视频处理能力:支持大规模视频接入、存储、转发和分发,可满足各类监控场景的需求。
(4)灵活的扩展性
支持多种接口类型,如USB、HDMI、VGA等,方便用户实现多种设备的接入和扩展。
(5)智能分析功能
支持实时视频分析,如人脸识别、车辆抓拍等,为用户提供更加智能化的监控体验。
(6)完善的权限管理
支持多级用户权限管理,确保了系统数据的安全性。
(7)丰富的场景应用
凭借高性能和大华成熟的解决方案,大华DSS平台可广泛应用于各类监控场景,如平安城市、智慧交通、金融安防等。
三、代码和解释
以下部分C++代码是大华DSS视频监控平台接入到AS-V1000视频监控汇聚平台的SDK代码的头文件,列出了相关的函数,具体如下:
1、代码和注释
以下是为代码和注释:
#include <string> // 引入标准字符串库
#include "NetSdkApp.h" // 引入大华网络SDK的基础应用类头文件
#include "InstructConvert.h" // 引入指令转换头文件,可能用于数据格式转换
using namespace std; // 使用std命名空间,避免每次使用标准库元素时前缀std::// 定义DaHuaDssChanInfo结构体,用于存储大华DSS平台的通道信息
struct DaHuaDssChanInfo {string ChannelId; // 通道IDstring name; // 通道名称string desc; // 通道描述int status; // 通道状态int channelType; // 通道类型string channelSN; // 通道序列号string rights; // 访问权限int cameraType; // 摄像头类型string CtrlId; // 控制IDdouble latitude; // 经度double longitude; // 纬度string viewDomain; // 视域string cameraFunctions;// 摄像头功能string multicastIp; // 多播IP地址int multicastPort; // 多播端口号string NvrChnlIp; // NVR通道IP地址int channelRemoteType;// 通道类型string subMulticastIp;// 多播IP地址int subMulticastPort; // 多播端口号// 构造函数,初始化所有成员变量为默认值DaHuaDssChanInfo() {ChannelId = "";name = "";desc = "";status = 0;channelType = 0;channelSN = "";rights = "";cameraType = 0;CtrlId = "";latitude = 0.0;longitude = 0.0;viewDomain = "";cameraFunctions = "";multicastIp = "";multicastPort = 0;NvrChnlIp = "";channelRemoteType = 0;subMulticastIp = "";subMulticastPort = 0;}
};// 定义DaHuaDssGpsStatus结构体,用于存储大华DSS平台的GPS状态信息
struct DaHuaDssGpsStatus {string DeviceId; // 设备IDdouble Latitude; // 纬度double Longitude; // 经度double Hight; // 高度double Angle; // 方位角double Speed; // 速度int Stars; // 卫星数量int Antenna; // 天线状态int Orientation; // 方向long ChangeTime; // 更新时间// 构造函数,初始化所有成员变量为默认值DaHuaDssGpsStatus() {DeviceId = "";Latitude = 0.0;Longitude = 0.0;Hight = 0.0;Angle = 0.0;Speed = 0.0;Stars = 0;Antenna = 0;Orientation = 0;ChangeTime = 0;}
};// 定义CNetSdkForDaHuaDSSPlatform类,继承自CNetSdkApp
class CNetSdkForDaHuaDSSPlatform : public CNetSdkApp {
public:// 设置报警回调函数int SetAlarmCallBack(long& UserData);// 设置报警,返回报警IDint SetupAlarm(long LoginID);// 取消报警int CancelAlarm(long lHandle);// 构造函数CNetSdkForDaHuaDSSPlatform();// 析构函数~CNetSdkForDaHuaDSSPlatform();// 初始化SDKint ZXInit(void);// 清理SDKint ZXClean(void);// 登录设备long ZXLogin(char* pDevIp, UINT16 DevPort, char* pUsername, char* pPasswd, char *pOnvifURL, long& UserData);// 登出设备int ZXLogout(long LoginID, long& UserData);// 开始实时预览long ZXRealPlay(long LoginID, int Channel, int StreamId, StreamInfo *pStreamInfo, long& UserData);// 停止实时预览int ZXStopRealPlay(long VideoHdl);// 保持连接活动bool ZXKeepAlive(long LoginID);// 查找通用文件(录像)int ZXFindCommonFile(long LoginID, int Channel, char *pBeginTime, char *pEndTime, TRecordInfoQueryResp* RecordInfo, DevInfo *pDevInfo);// 开始回放long ZXPlayBackStart(long LoginID, int Channel, char *pBeginTime, char *pEndTime, long long& FileSize, long UserData, bool bDownLoad, DevInfo *pDevInfo);// 停止回放int ZXPlayBackStop(long PlayBackHdl);// 控制回放int ZXPlayBackControl(long PlayBackHdl, ZXPlayControl_E CMD, long& Postion, long AllFileTime = 0);// 控制PTZint ZXPtzControl(long LoginID, int channelid, int opt, int param1, TExtPtzInfo *pExtPtzInfo);// 设置平台状态void SetPlatformStatus(bool bIsOnline);// 获取平台状态int GetPlatformStatus();// 发送报警信息至SIP UAvoid SendAlarmInfoToSipUA(string SerialNumber, bool IsOnline);// 发送GPS信息至SIP UAvoid SendGpsToSipUA(vector<DaHuaDssGpsStatus> &GpsInfo);private:// 解析通道信息int ParseChanInfo(char *pstr, vector<DaHuaDssChanInfo> &vChanInfo);// 发送子通道信息至数据库bool SendSubChanToDB(long& UserData, vector<DaHuaDssChanInfo> &vChanInfo);// SDK状态回调函数static int32_t DPSDKStatusCallback(int32_t nPDLLHandle, int32_t nStatus, void* pUserParam);private:char m_DevIp[IPSTR_MAX_LEN+1]; // 设备IP地址char m_UserName[USERNAME_MAX_LEN+1]; // 用户名char m_Passwd[USERNAME_MAX_LEN+1]; // 密码int m_DevPort; // 设备端口号int m_PlatformStatus; // 大华DSS平台在线状态;1:在线;0:不在线long DevCtrlHandle; // 设备控制句柄static void *m_GpsHandle; // GPS处理句柄
};
2、函数功能说明
前面列出的C++代码定义了一个类CNetSdkForDaHuaDSSPlatform`,它是从CNetSdkApp` 类继承来的,主要用于封装和大华DSS平台交互的网络SDK功能。这个类封装了一系列方法,用于登录、实时预览、回放控制、PTZ控制、报警设置等,以及一些辅助方法和成员变量。
(1)引入的头文件
-<string>`:标准库中的字符串处理头文件。
-"NetSdkApp.h"`:可能是一个自定义的基类或SDK提供的基础类头文件。
-"InstructConvert.h"`:可能是用于指令转换的自定义头文件。
(2)自定义结构体
-DaHuaDssChanInfo`:描述了大华DSS平台上的通道信息,包括通道ID、名称、描述、状态、类型、序列号、权限、摄像头类型、控制ID、经纬度、视域、功能、多播IP/端口、NVR通道IP、远程类型、子多播IP/端口等。
-DaHuaDssGpsStatus`:描述了GPS状态,包括设备ID、纬度、经度、高度、角度、速度、卫星数、天线状态、方向和变更时间。
(3)类定义
-CNetSdkForDaHuaDSSPlatform`:这个类提供了与大华DSS平台通信的方法,包括初始化、清理、登录、登出、实时预览、录像查询、回放控制、PTZ控制、平台状态设置/获取、发送报警信息和GPS信息至SIP UA等功能。
(4)成员方法
- 公有成员方法:用于外部调用,如登录、实时预览、回放控制、报警设置等。
- 私有成员方法:用于内部逻辑处理,如解析通道信息、发送子通道信息至数据库、状态回调等。
(5)成员变量
-m_DevIp`,m_UserName`,m_Passwd`,m_DevPort`:存储设备的IP地址、用户名、密码和端口号。
-m_PlatformStatus`:存储平台的在线状态。
-DevCtrlHandle`:可能用于存储设备控制句柄。
-m_GpsHandle`:静态成员,可能用于存储GPS处理的句柄或资源。
四、效果展示
可以通过视频监控汇聚平台的web客户端,查看大华DSS下挂的视频图像,如下图,为刚刚截取的现场视频:
文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。