目录
一、视频监控汇聚平台
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; // 通道ID
string name; // 通道名称
string desc; // 通道描述
int status; // 通道状态
int channelType; // 通道类型
string channelSN; // 通道序列号
string rights; // 访问权限
int cameraType; // 摄像头类型
string CtrlId; // 控制ID
double 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; // 设备ID
double 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);
// 设置报警,返回报警ID
int SetupAlarm(long LoginID);
// 取消报警
int CancelAlarm(long lHandle);
// 构造函数
CNetSdkForDaHuaDSSPlatform();
// 析构函数
~CNetSdkForDaHuaDSSPlatform();
// 初始化SDK
int ZXInit(void);
// 清理SDK
int 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);
// 控制PTZ
int ZXPtzControl(long LoginID, int channelid, int opt, int param1, TExtPtzInfo *pExtPtzInfo);
// 设置平台状态
void SetPlatformStatus(bool bIsOnline);
// 获取平台状态
int GetPlatformStatus();
// 发送报警信息至SIP UA
void SendAlarmInfoToSipUA(string SerialNumber, bool IsOnline);
// 发送GPS信息至SIP UA
void 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 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。