大华网络SDK编程手册
VERSION 3.1.8(Build 070321)
2007-3-21
版权所有 侵权必究
前 言
非常感谢您使用我们公司的设备,我们将为您提供最好的服务。
本手册可能包含技术上不准确的地方或印刷错误,欢迎指正。我们将会定期更新手册的内容。
修订记录
日期 | 修订内容 | 作者 |
2006-05-30 | 创建 | 林峰 |
2006-7-3 | 修订接口描述 | 冯江 |
2006-7-5 | 修订概要描述 | 华立高 |
2006-7-26 | 修订接口描述 | 刘杰 陈美英 |
2006-8-10 | 同步更新接口描述 | 陈美英 |
2006-8-21 | 修订接口描述 | 陈美英 |
2006-8-23 | 增加典型调用顺序描述 | 陈美英 |
2006-8-28 | 3.0.0整理修订 | 陈美英 |
2006-9-15 | 3.0.5同步增加回调数据扩展接口,更新云台控制说明 | 陈美英 |
2006-9-21 | 3.0.7同步增加登录扩展接口 | sdk 陈美英 |
2006-9-29 | 3.0.9同步增加带有配置结构的配置功能接口说明 | 陈美英 |
2006-10-16 | 增加单独修改通道名称的接口 | 赵均树 |
2006-10-21 | 增加打开实时图像的扩展接口 | 赵均树 |
2006-10-28 | 1、增加按时间回放和下载接口 2、增加设备配置的第三方接入和获取设备的序列号功能 | 赵均树 |
2006-11-8 | 1、带数据回调的按时间回放扩展接口 2、带数据回调的按文件回放扩展接口 3、远程重启接口 4、录像回放能够播放音频 | 赵均树、陈琼施 |
2006-11-19 | 1、解决了反复修改第三方的IP地址时DVR比较容易死机的问题 2、增加485接口 3、通过网络修改IP配置时DVR重启 | 赵均树、陈琼施 |
2006-11-27 | 1、增加DDNS查询IP的功能 | 赵均树、陈琼施 |
2006-12-15 | 修正文档中接口描述的错误,并增加链接 | 赵均树、陈琼施、林坚彦 |
2006-12-25 | 增加并修改语音对讲的接口 | 叶浩、陈琼施 |
2006-12-29 | 增加用户管理接口 | 林坚彦、陈琼施 |
2007-1-17 | 修改了CLIENT_Login的功能描述 增加了CLIENT_FindFile、CLIENT_FindNextFile、CLIENT_FindClose | 林坚彦、赵均树、陈琼施 |
2007-2-8 | 增加了设备参数配置的两个接口:CLIENT_GetDevConfig CLIENT_SetDevConfig | 林坚彦、陈琼施、 赵均树 |
2007-3-7 | 修改了CLIENT_StopListen接口典型应用的笔误 | 赵均树 |
2007-03-19 | 增加了个查询报警状态的接口。 | 林坚彦、陈琼施 |
2007-03-21 | 增加了语音对讲中的音频编码接口 增加了扩展报警侦听接口 | 叶浩、陈琼施、林坚彦 |
1 简 介 7
1.1 概述 7
1.2 适用性 7
1.3 特功能 8
2 设计原则 9
2.1 编程说明 9
2.2 典型调用顺序 10
3 数据结构定义 13
3.1 客户端数据结构 13
3.1.1 设备信息结构 16
3.1.3 录像文件信息 17
3.1.4 设备状态信息 17
3.1.5 系统配置信息结构 21
4 接口定义 21
4.1 SDK初始化 21
4.2 状态侦听 23
4.3 字符叠加 25
4.4 设备注册 26
4.5 实时监视 27
4.6 音频控制 31
4.7 数据保存 32
4.8 视频抓图 35
4.9 回放和下载 36
4.10 回放控制 46
4.11 云台控制 49
4.12 实时预览 51
4.13 系统配置 52
4.14 日志管理 57
4.15 透明串口 58
4.16 远程控制 60
4.17 录像控制 62
4.18 系统时间 63
4.19 用户管理 63
4.20 语音对讲 65
4.21 码流统计 69
4.22 IO控制 70
4.23 强制I帧 71
4.24 设置限流 71
4.25 获取设备状态 72
4.26 修改通道名称 72
4.27 DDNS查询IP 73
4.28 设备参数配置 73
5 示例功能实现 87
5.1 连接设备 88
5.2 报警信息获取 88
5.3 系统配置 88
5.4 实时监视 88
5.5 数据保存 89
5.6 回放/下载和进度指示 89
5.7 播放控制 89
5.8 预览 89
5.9 字符叠加 89
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、、
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.实时监视通道
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论