4.21 码流统计 ...................................................... 4.22 IO控制 ....................................................... 4.23 强制I帧 ...................................................... 4.24 设置限流 ...................................................... 4.25 获取设备状态 ................................................... 4.26 修改通道名称 .................................................. 5 4.27 DDNS查询IP .................................................. 4.28 设备参数配置 ................................................... 5 示例功能实现 ....................................................... 5.1 连接设备 ....................................................... 5.2 报警信息获取 .................................................... 5.3 系统配置 ....................................................... 5.4 实时监视 ....................................................... 5.5 数据保存 ....................................................... 5.6 回放/下载和进度指示 .............................................. 5.7 播放控制 ....................................................... 5.8 预览 .......................................................... 5.9 字符叠加 .......................................................
1 简 介
1.1 概述
欢迎使用大华网络SDK编程手册,网络客户端软件开发包(DVR客户端SDK)是大华网络硬盘录像机、网络视频服务器的配套产品,本文档详细描述了开发包中各个函数实现的功能、接口及其函数之间的调用关系和示例实现。
网络客户端软件开发包主要包括业务操作和设备管理两大部分:
业务操作:状态侦听、实时监视、实时预览、字符叠加、音频控制、录像回放和下载、
数据保存、云台控制、语音对讲、透明串口、码流统计等功能。
设备管理:远程升级、远程重启/关闭、设备参数配置(系统通用配置、报警布/撤防
设置、录像配置、串口配置、图像配置、日志管理、用户管理、设备校时、动态检测配置、网络配置)等功能。
开发包所包括的文件有:
网络库:dhnetsdk.lib、dhnetsdk.dll、dhnetsdk.h
解码库:decode.dll、render.dll、dllh264.dll、audiorecord.dll、AudioRecordEx.dll、
avcodec.dll
辅助库:dhdvr.dll、ParaTimer.dll、DetectAreaCtrl.ocx、SetDeviceConfigProj.ocx
1.2 适用性
? ? ? ?
支持所有大华网络硬盘录像机(DVR)、网络视频服务器(NVS)、网络报警 服务器(NAS)
只支持TCP网络传输模式
客户端可以采用多种分辨率进行图像预览,支持的分辨率包括: QCIF、CIF、2CIF、、HalfD1、D1,VGA(640×480)等
客户端支持多种图像编码,包括MPEG4和H.264等
1.3 特色功能
支持设备的以下特色功能: ? 多路预览
在窄带条件下,同时多路实时监视对带宽的要求比较高,一般的处理情况有两种,其一,轮巡。其二,多路预览。所谓多路预览,就是在一个通道上把所有通道的数据组织在一起传输,等同于多路同时监视。必要的时候,可以转单路监视。大华DVR支持多路预览功能。 ? 支持标准的MP4数据
一般情况下,同一平台集成不同厂商的前端设备(如DVR),由于各厂商采用的视频压缩方法不同(包括算法、参数定义等),导致解码端回放必须采用厂商特定的工具,造成平台开发商无法自定义播放标准。本SDK能够解决这个问题。通过特定接口,应用层可以通过本SDK获取标准媒体数据(FOURCC(‘D’、‘I’、‘V’、‘X’)视频数据),要支持用各种通用播放器播放,有了提供标准数据,应用层只须打包标准数据到播放器支持的容器类型(也就是文件格式,如AVI标准)就可以了。
2 设计原则
2.1 编程说明
? 初始化和清除
1、 使用网络客户端软件包首先调用CLIENT_Init()对系统进行初始化,应用程序退
出时调用CLIENT_Cleanup()释放所有占用的资源。
2、 大多数函数调用均应该在CLIENT_Init()之后,CLIENT_Cleanup()之前,除了
少数函数,譬如CLIENT_SetConnectTime()在CLIENT_Init()之前调用,而CLIENT_GetSDKVersion()可以在任何时候调用等等。 ? 操作句柄
系统设计上多处使用了句柄概念,很多操作均针对句柄,如回放、下载以及语音对讲等。
? 用户登录和注销
用户在访问前端设备之前必须通过调用CLIENT_Login ()登录到前端设备上,登录成功后返回一个全局唯一的句柄。此句柄就像一个会话通道,之后该用户可通过此句柄访问前端设备。退出该会话时则通过CLIENT_Logout ()函数在前端设备上注销此句柄以终止该会话通道的使用。建立连接与登录是同步的。 ? 心跳功能
在本开发包中提供自动心跳功能(20秒一次心跳)当设备断开能及时回调给客户端。 ? 同步与异步
异步以设置回调函数来响应网络数据,有些异步在设置后返回请求句柄,结束请求时将请求句柄提供给SDK以注销相关资源。 ? SDK提供协议探测和转换 ? 回调函数
一般都有dwUser参数, 由用户自定义需要的数据, 一般用来传入类对象指针, 方便回调处理在类中实现,回调应用都可以采取这种方式。
2.2 典型调用顺序
A. 初始化
SDK初始化 CLIENT_Init() B. SDK功能设置或信息获取
设置连接等待时间 CLIENT_SetConnectTime() 获取SDK版本 CLIENT_GetSDKVersion() 设置消息回调 CLIENT_SetDVRMessCallBack() 设置自定义叠加画板 CLIENT_RigisterDrawFun() C. 登录连接设备
登录设备 CLIENT_Login() 开始侦听 CLIENT_StartListen() D. 设备功能操作与信息获取
系统配置 CLIENT_QueryConfig() CLIENT_SetupConfig() 获取设备状态 CLIENT_GetDEVWorkState() 获取协议信息 CLIENT_QueryComProtocol() 查询获取系统信息 CLIENT_QuerySystemInfo() 查询通道名称 CLIENT_QueryChannelName() 查询日志 CLIENT_QueryLogCallback() CLIENT_QueryLog() 用户管理 CLIENT_QueryUserInfo() CLIENT_OperateUserInfo() 云台控制 CLIENT_PTZControl() CLIENT_DHPTZControl() 语音对讲 CLIENT_StartTalk() CLIENT_SendTalkData_Custom() CLIENT_StopTalk() 设置限流 CLIENT_SetMaxFlux() 透明串口 CLIENT_CreateTransComChannel() CLIENT_SendTransComData() CLIENT_DestroyTransComChanne() E. 实时监视通道
打开监视通道 CLIENT_RealPlay() CLIENT_RealPlayEx() 保存监视图像数据 CLIENT_SaveRealData() 监视数据回调保存 CLIENT_SetRealDataCallBack() CLIENT_SetRealDataCallBackEx() 获取视频参数信息 CLIENT_ClientGetVideoEffect() 设置修改视频参数 CLIENT_ClientSetVideoEffect() 强制I帧 CLIENT_MakeKeyFrame() F. 多画面预览通道
相关推荐: