乐趣区

关于qt5:海康摄像SDK开发笔记一海康威视网络摄像头SDK介绍与模块功能

若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/1116396032

红瘦子 (红模拟) 的博文大全:开发技术汇合(蕴含 Qt 实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬联合等等)继续更新中…(点击传送门)

Qt 开发专栏:三方库开发技术

前言

  视频监控、人脸识别等利用中常常应用到摄像头,以后占据支流视频监控摄像头就是海康和大华两家,都可通过自家的 sdk 或者是 onvif 形式应用和管制摄像头。
  本文章解说海康的 sdk 形式。

海康

  海康(海康威视)是以视频为外围的智能物联网解决方案和大数据服务提供商,在视频行业是以后实打实的老大哥,当然还有大华,其余不多做介绍。

海康设施网络 SDK 下载

  下载地址:https://www.hikvision.com/cn/download_61.html
  
  在 ubuntu16.04 x86_64 上开发,下载 SDK_Linux64 版本,可查看详细描述,右上角下载:
  
  点击下载:
  
  解压后:
  
  海康威视 SDK 自带 QtDemo,不过是 qt4.7 版本的,笔者应用 qt5 版本。

海康 SDK 概述与应用流程

初始化 SDK

  海康 sdk 有其固有的应用流程,如下图:
  

初始化 SDK(NET_DVR_Init)

  对整个网络 SDK 零碎的初始化,内存预调配等。

设置连贯超时工夫(NET_DVR_SetConnectTime)可选

  设置 SDK 中的网络连接超时工夫,不调用则应用默认值。

异样回调函数(NET_DVR_SetDVRMessage 或 NET_DVR_SetExceptionCallBack_V30)

  sdk 中大部分模块的性能是异步异样,海康提供此接口用于接管预览、报警、回放、通明通道和语音对讲等模块产生异样信息。用户能够在初始化 SDK 后就设置该回调函数,在应用层对各个模块异样音讯的接管和解决。

从解析服务器取得设施的 IP 地址(NET_DVR_GetDVRIPByResolveSvr_EX)

  该接口提供一种在仅晓得设施名称(或 DDNS 域名)或者序列号的状况下,从解析服务器取得设施 IP 地址的办法。如:以后设施是通过拨号上网形式获取到动静 IP 地址,而运行了我公司 IPServer 软件的服务器即为解析服务器或者设施注册到我公司 DDNS 服务器上,咱们能够通过此接口输出服务器的地址、设施的名称或序列号等信息查问该设施的 IP 地址。(留神:由此看来不能达到没有任何配置的状况下,间接应用该函数搜寻到局域网内的所有摄像头信息)。

用户注册设施(NET_DVR_Login_V30)

  实现用户的注册性能,注册胜利后,返回的用户 ID 作为其余功
能操作的惟一标识,SDK 容许最大注册用户数为 512 个。就设施而言,V3.0 以上版本反对的设施容许有 32 个注册用户名,而且同时最多容许 128 个用户注册;V3.0 以下版本反对的设施容许有 16 个注册用户名,而且同时最多容许 128 个用户注册。
  登录后才可进行性能其余性能的调用(除了报警模块不须要登录)。

开释 SDK(NET_DVR_Cleanup)

  不再应用 sdk 后,开释其应用的资源。

SDK 功能模块

  

预览模块

  从设施取实时码流,解码显示以及播放管制等性能,同时反对软解码和解码卡解码。

回放和下载模块

  能够通过按工夫和按文件名的形式近程回放或者下载设施的录像文件,后续能够进行解码或者存储。同时还反对断点续传性能(须要设施反对)。

参数配置模块

  设置和获取设施的参数,次要包含设施参数、网络参数、通道压缩参数、串口参数、报警参数、异样参数、交易信息和用户配置等参数信息。

近程设施保护模块

  实现敞开设施、重启设施、复原默认值、近程硬盘格式化、近程降级和配置文件导入 / 导出等保护工作。

语音对讲转发模块

  语音对讲转发模块:实现和设施的语音数据对讲和语音数据获取,音频编码格局能够指定。

报警模块

  报警模块:解决设施上传的各种报警信号。报警分为“布防”和“监听”两种形式,在采纳监听形式并且不 须要获取用户 ID 的状况下,报警模块能够无需进行“用户注册”操作步骤。

通明通道模块

  通明通道模块:通明通道是将 IP 数据报文解析后间接发送到串行口的一种技术。实际上起到了延长串行设施管制间隔的作用。可利用 IP 网络管制多种串行设施,如管制解码器、矩阵、报警主机、门禁、仪器仪表等串行设施,对用户来说,只看到点对点传输,毋庸关怀网络传输过程,所以称为串口通明通道。SDK 提供 485 和 232 串口作为通明通道性能,其中要将 232 串口作为通明通道应用,首先必须在 232 串口的配置信息(NET_DVR_RS232CFG)中将工作模式选为通明通道,这样 232 串口才可作为通明通道应用。

云台管制模块

  云台管制模块:实现对云台的基本操作、预置点、巡航、轨迹和通明云台的管制。SDK 将云台管制分为两种模式:一种是通过图像预览返回的句柄进行管制;另一种是无预览限度,通过用户注册 ID 号进行云台管制。

IP 通道概念与相干阐明

模仿输出

  DVR 视频输出接模仿摄像机,其通道称为模仿通道;混合型 DVR、NVR 等设施反对 IPC 接入,通道称 IP 通道(或者数字通道),配置相干参数时需调用 IP 接入配置参数来进行资源的获取和重新分配。

模仿通道个数

  客户端通过注册设施(NET_DVR_Login_V30)返回的设施信息 NET_DVR_DEVICEINFO_V30 获取 模仿通道个数 (byChanNum)、 模仿通道起始通道号 (byStartChan)和 设施反对的最大 IP 通道数 (byIPChanNum + byHighDChanNum * 256)、 数字通道起始通道号(byStartDChan)。

通道号

  从 byStartChan 到 byStartChan + byChanNum – 1 对应为模仿通道的通道号,IP 通道的通道号为 byStartDChan 到 byStartDChan + (byIPChanNum + byHighDChanNum * 256) – 1。DVR 只有模仿通道,NVR 只有 IP 通道,混合型 DVR 同时反对模仿通道和 IP 通道。

单设施的多 IP 通道

  如果设施反对 IP 通道个数大于 0,则能够通过近程参数配置接口 NET_DVR_GetDVRConfig(配置命令:NET_DVR_GET_IPPARACFG_V40)能够获取失去设施具体的 IP 资源信息(NET_DVR_IPPARACFG_V40),包含模仿通道是否禁用(byAnalogChanEnable)、IP 通道个数(dwDChanNum)、IP 通道起始通道号(dwStartDChan)、IP 通道取流模式、IP 通道无效状态和在线状态等。通过近程参数配置接口NET_DVR_SetDVRConfig(配置命令:NET_DVR_SET_IPPARACFG_V40)可对设施进行 IP 资源配置,包含增加、批改、删除 IP 通道等。

报警

  混合型 DVR 或 NVR 的 IP 报警输出和报警输入的通道是在音视频 IP 通道资源分配好后,由设施主动调配的。如果要对 IP 报警参数进行配置,首先通过命令 NET_DVR_GET_IPALARMINCFG_V40NET_DVR_GET_IPALARMOUTCFG_V40 获取 IP 报警输出资源(NET_DVR_IPALARMINCFG_V40)和 IP 报警输入资源(NET_DVR_IPALARMOUTCFG_V40)。而后通过命令 NET_DVR_SET_ALARMINCFG_V40 能够配置报警数相干参数(NET_DVR_ALARMINCFG_V40),包含报警输出名称、报警器类型、布防工夫、联动形式等,通过命令 NET_DVR_SET_ALARMOUTCFG_V30 能够配置报警输入相干参数(NET_DVR_ALARMOUTCFG_V30),比方报警输入名称、布防工夫、输入报警延时等。相干接口:NET_DVR_GetDVRConfigNET_DVR_SetDVRConfig

退出移动版