大华网络SDK开发手册.docx
- 文档编号:10085147
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:38
- 大小:182.99KB
大华网络SDK开发手册.docx
《大华网络SDK开发手册.docx》由会员分享,可在线阅读,更多相关《大华网络SDK开发手册.docx(38页珍藏版)》请在冰点文库上搜索。
大华网络SDK开发手册
大华网络SDK编程手册
VERSION3.1.8(Build070321)
2007-3-21
版权所有XX
非常感谢您使用我们公司的设备,我们将为您提供最好的服务。
本手册可能包含技术上不准确的地方或印刷错误,欢迎指正。
我们将会定期更新手册的内容。
修订记录
日期
修订内容
作者
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同步增加登录扩展接口
陈美英
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、CLIENTFindClose
林坚彦、赵均树、陈琼施
2007-2-8
增加了设备参数配置的两个接口:
CLIENT_GetDevConfigCLIENT_SetDevConfig
林坚彦、陈琼施、赵均树
2007-3-7
修改了CLIENTStopListen接口典型应用的笔误
赵均树
2007-03-19
增加了个查询报警状态的接口。
林坚彦、陈琼施
2007-03-21
增加了语音对讲中的音频编码接口
叶浩、陈琼施、林坚彦
增加了扩展报警侦听接口
1简介
1.1概述
欢迎使用大华网络SDK编程手册,网络客户端软件开发包(DVR客户端SDK)是大华网络硬盘录像机、网络视频服务器的配套产品,本文档详细描述了开发包中各个函数实现的功能、接口及其函数之间的调用关系和示例实现。
网络客户端软件开发包主要包括业务操作和设备管理两大部分:
业务操作:
状态侦听、实时监视、实时预览、字符叠加、音频控制、录像回放和下载、数据保存、云台控制、语音对讲、透明串口、码流统计等功能。
设备管理:
远程升级、远程重启/关闭、设备参数配置(系统通用配置、报警布/撤防设置、录像配置、串口配置、图像配置、日志管理、用户管理、设备校时、动态检测配置、网络配置)等功能。
开发包所包括的文件有:
网络库:
、、
解码库:
、、、、、
辅助库:
、、、
1.2适用性
支持所有大华网络硬盘录像机(DVR)、网络视频服务器(NVS)、网络报警
服务器(NAS)
只支持TCP网络传输模式
客户端可以采用多种分辨率进行图像预览,支持的分辨率包括:
QCIF、CIF、
2CIF、、HalfDI、D1,VGA(640>480)等客户端支持多种图像编码,包括MPEG4和等
1.3特色功能
支持设备的以下特色功能:
多路预览
在窄带条件下,同时多路实时监视对带宽的要求比较高,一般的处理情况有两种,其一,轮巡。
其二,多路预览。
所谓多路预览,就是在一个通道上把所有通道的数据组织在一起传输,等同于多路同时监视。
必要的时候,可以转单路监视。
大华DVR支持多路预览功能。
支持标准的MP4数据
一般情况下,同一平台集成不同厂商的前端设备(如DVR),由于各厂商采用的视频压缩方法不同(包括算法、参数定义等),导致解码端回放必须采用厂商特定的工具,造成平台开发商无法自定义播放标准。
本SDK能够解决这个问题。
通过特定接口,应用层可以通过本SDK获取标准媒体数据(FOURC‘D'、‘V‘X视频
数据),要支持用各种通用播放器播放,有了提供标准数据,应用层只须打包标准数据到播放器支持的容器类型(也就是文件格式,如AVI标准)就可以了。
2设计原则
2.1编程说明
初始化和清除
1、使用网络客户端软件包首先调用对系统进行初始化,应用程序退出时调用释放所有占用的资源。
2、大多数函数调用均应该在之后,之前,除了少数函数,譬如
CLIENT_SetConnectTime()在之前调用,而可以在任何时候调用等等。
操作句柄
系统设计上多处使用了句柄概念,很多操作均针对句柄,如回放、下载以及语音对讲等。
用户登录和注销
用户在访问前端设备之前必须通过调用登录到前端设备上,登录成功后返回一个全局唯一的句柄。
此句柄就像一个会话通道,之后该用户可通过此句柄访问前端设备。
退出该会话时则通过函数在前端设备上注销此句柄以终止该会话通道的使用。
建立连接与登录是同步的。
心跳功能
在本开发包中提供自动心跳功能(20秒一次心跳)当设备断开能及时回调给客户端。
同步与异步
异步以设置回调函数来响应网络数据,有些异步在设置后返回请求句柄,结束请求时将请求句柄提供给SDK以注销相关资源。
SDK提供协议探测和转换
回调函数
一般都有dwUser参数,由用户自定义需要的数据,一般用来传入类对象指针,方便回调处理在类中实现,回调应用都可以采取这种方式。
2.2典型调用顺序
初始化
SDK初始化CLIENT_Init()
A.
SDK功能设置或信息获取
B.
设置连接等待时间CLIENTSetConnectTime()
获取SDK版本CLIENT_GetSDKVersion()
设置消息回调CLIENT_SetDVRMessCallBack()
设置自定义叠加画板CLIENTRigisterDrawFun()
C.登录连接设备
登录设备
开始侦听
CLIENT_Login()CLIENTStartListen()
D.设备功能操作与信息获取
系统配置
CLIENT_QueryConfig()
获取设备状态
CLIENT_SetupConfig()
CLIENT_GetDEVWorkState()
获取协议信息
CLIENT_QueryComProtocol()
查询获取系统信息
CLIENT_QuerySystemInfo()
查询通道名称
CLIENT_QueryChannelName()
查询日志
CLIENT_QueryLogCallback()
用户管理
CLIENT_QueryLog()
CLIENT_QueryUserInfo()
云台控制
CLIENT_OperateUserlnfo()CLIENT_PTZControl()
语音对讲
CLIENT_DHPTZControl()
CLIENT_StartTalk()
设置限流
CLIENT_SendTalkData_Custom()CLIENT_StopTalk()
CLIENT_SetMaxFlux()
透明串口
CLIENT_CreateTransComChannel()
CLIENT_SendTransComData()
CLIENTDestroyTransComChanne()
E.实时监视通道
打开监视通道
保存监视图像数据监视数据回调保存
获取视频参数信息设置修改视频参数强制I帧
CLIENT_RealPlay()CLIENT_RealPlayEx()CLIENT_SaveRealData()CLIENT_SetRealDataCallBack()CLIENT_SetRealDataCallBackEx()CLIENT_ClientGetVideoEffect()CLIENT_ClientSetVideoEffect()CLIENTMakeKeyFrameO
F.多画面预览通道
查询录像回放及控制
下载
打开多画面预览CLIENT_MultiPlay()
停止多画面预览CLIENT_StopMultiPlay()
G.回放/下载通道
CLIENT_QueryRecordFile()
CLIENT_PlayBackByRecordFile()CLIENT_PlayBackByRecordFileEx()CLIENT_PlayBackByTime()CLIENT_PlayBackByTimeEx()CLIENT_GetPlayBackOsdTime()
CLIENT_PausePlayBack()
CLIENT_SeekPlayBack()
CLIENT_StopPlayBack()
CLIENT_StepPlayBack()CLIENT_FastPlayBack()CLIENT_SlowPlayBack()CLIENT_GetFramePlayBack()CLIENT_SetFramePlayBack()CLIENT_DownloadByRecordFile()CLIENT_DownloadByRecordFileEx()CLIENT_DownloadByTime()CLIENT_StopDownload()
CLIENTGetDownloadPos()
针对显示图像的操作(监视/回放/多画面预览)
抓图码流统计打开音频
CLIENT_CapturePicture()CLIENT_GetStatiscFlux()CLIENT_OpenSound()CLIENT_SetVolume()
设置曰里
I.远程控制
远程升级
CLIENT_StartUpgradeCLIENT_SendUpgradeCLIENT_StopUpgrade
录像控制
CLIENT_QueryRecordState
CLIENT_SetupRecordState
系统校时
CLIENT_QueryDeviceTime
CLIENT_SetupDeviceTime
IO控制
CLIENTQueryIOControlState
CLIENT_IOControl
注销断开设备
停止侦听断开连接
CLIENT_StopListen()CLIENT_Logout()
释放SDK资源
SDK退出
CLIENT_Cleanup()
丄
K.
对DE、F、GHI中的功能大部分之间没有调用先后顺序,当然对同一个功能还是应该按先打开再操作最后关闭的顺序。
3数据结构定义
3.1客户端数据结构
通用云台控制命令
110011*********3日志的结构形式
typedefenum_PTZ_ControlType{
PTZ_UP_CONTROL=0,
日志的类型
enumdh_log_t
查询硬盘信息的返回数据结构
typedefstruct{
DWORDdwDiskNum;码不正确
2•帐号不存在
3•等待登录返回超时
4.帐号已登录
5•帐号已被锁定
6•帐号又被列为黑名单
7•资源不足,系统忙
9•找不到网络主机
0•其他网络错误
返回值:
失败返回0,成功返回设备ID,登录成功之后对设备的操作都可以通过此值(设备句柄)对应到相应的设备
相关函数:
典型应用:
在初始化后就可以调用本接口注册到指定的设备,成功后将返回设备句柄,给相关的函数调用
1.CLIENT_APILONGCLIENT_LoginEx(char*pchDVRIP,WORDwDVRPort,char*pchUserName,char*pchPassword,intnSpecCap,void*pCapParam,LPNET_DEVICEINFOlpDeviceInfo,int*error=0)
函数说明:
注册用户到设备的扩展接口,支持一个用户指定设备支持的能力参数说明:
增加扩展参数
nSpecCap
设备支持的能力,值为1表示同一用户名可以多次登录,其他暂时不支持
pCapParam
对nSpecCap的补充参数,目前为0
返回值:
失败返回0,成功返回设备ID,登录成功之后对设备的操作都可以通过此值(设备句柄)对应到相应的设备
相关函数:
典型应用:
一个用户同时多次登录同一台设备
2.CLIENT_APIBOOLCLIENT_Logout(LONGlLoginID);
函数说明:
注销设备用户
参数说明:
lLoginID
的返回值
返回值:
成功返回TRUE,失败返回FALSE
相关函数:
典型应用:
当需要设备主动断开时调用;
3.2实时监视
3.CLIENT_APILONGCLIENT_RealPlay(LONGlLoginID,intnChannelID,HWNDhWnd);
函数说明:
启动实时监视
参数说明:
lLoginID
的返回值
nChannelID
实时监视通道号(通道号从0开始)
hWnd
窗口句柄,值为0对数据不解码、不显示图像
返回值:
失败返回0,成功返回实时监视ID(实时监视句柄),将作为相关函数的参数相关函数:
、、、、、、、、、、、、典型应用:
根据登录时获取到的设备信息,调用本接口,就可以打开任何有效的一路实时监视,显示到指定的hWnd窗口,正常返回的监视ID,用于以下对本监视通道的控制和操作;
4.CLIENT_APIBOOLCLIENT_StopRealPlay(LONGlRealHandle);函数说明:
停止实时监视参数说明:
lRealHandle
的返回值
返回值:
成功返回TRUE,失败返回FALSE相关函数:
典型应用:
关闭失实监视
5.CLIENT_APILONGCALL_METHODCLIENT_RealPlayEx(LONGlLoginID,intnChannelID,HWNDhWnd,RealPlayTyperType)函数说明:
启动实时监视或多画面预览,当打开多画面预览时不能打开语音对讲
参数说明:
lLoginID
的返回值
nChannelID
实时监视通道号,如果rType为RType_Multiplay该参数保留。
hWnd
窗口句柄,值为0对数据不解码、不显示图像rType
数据类型RType_Realplay=0,1f1f.
BYTEformat;110251200
以下29、30、31为一组录像查询接口,和上面的录像查询接口独立
6.CLIENT_APILONGCALL_METHODCLIENT_FindFile(LONG
lLoginID,intnChannelId,intnRecordFileType,char*cardid,LPNET_TIMEtime_start,LPNET_TIMEtime_end,boolbTime,intwaittime);
函数说明:
打开录像查询句柄参数说明:
lLoginID
的返回值
nChannelId通道号,从0开始
nRecordFileType
录像文件类型
0所有录像文件
1外部报警
2动态检测报警
3所有报警
4卡号查询
5组合条件查询
Cardid
卡号,只针对卡号查询有效
Time_start查询录像开始时间
Time_end
查询录像结束时间
bTime
是否按时间查询(目前无效)waittime
查询超时时间返回值:
成功返回查询句柄,失败返回0相关函数:
,,
典型应用:
可以在回放之前先调用本接口查询录像记录,再调用函数挨条返回录象记录用于播放,查询完毕可以调用关闭查询句柄。
7.CLIENT_APIintCALL_METHODCLIENT_FindNextFile(LONGlFindHandle,LPNET_RECORDFILE_INFOlpFindData);
函数说明:
查询下一条录像文件记录参数说明:
lFindHandle
的返回值lpFindData
录象文件记录缓冲,用于输出查询到的录象文件记录返回值:
1:
成功取回一条录象记录,0:
录象记录已取完,-1:
参数出错相关函数:
典型应用:
调用本接口之前应先调用以打开查询句柄。
8.CLIENT_APIBOOLCALL_METHODCLIENT_FindClose(LONGlFindHandle);
函数说明:
关闭录象查询句柄参数说明:
lFindHandle
的返回值
返回值:
成功返回TRUE,失败返回FALSE相关函数:
9.
典型应用:
调用打开查询句柄,查询完毕后应调用本函数以关闭查询句柄。
CLIENT_APILONGCALL_METHOD
CLIENT_PlayBackByRecordFileEx(LONG
LPNET_RECORDFILE_INFOlpRecordFile,
fDataCallBackfDownLoadDataCallBack,DWORDdwDataUser);
函数说明:
带数据回调的按录象文件回放扩展接口,每通道同一时间只能播放一则录像,不能同时播放同一通道的多条记录。
窗口参数(hWnd)有效时不回调数据,如果需要数据回调则窗口参数.(hWnd)必须传0。
参数说明:
lLoginID
的返回值
lpRecordFile录像文件信息
hWnd
回放窗口
cbDownLoadPos
进度回调函数
dwPosUser
进度回调用户参数
进度回调函数参数说明:
参见
dwDataUser
数据回调用户
数据回调函数参数说明:
lRealHandle
CLIENT_PlayBackByRecordFileEx的返回值
dwDataType
这里为0(原始数据)
pBuffer
数据缓冲
dwBufSize缓冲长度fDownLoadDataCallBack数据回调函数,原形参见典型应用dwUser用户数据,就是上面输入的用户数据dwDataUser注意】本回调函数的返回值会影响SDK的内部操作:
返回1代表回调成功,没什么特殊情况都应该返回这个值
返回0代表回调函数堵塞,这个会导致同一数据重复发送,即回放画面会出现重复
返回值:
成功返回网络回放ID,失败返回0
相关函数:
、,、、、、、、、
典型应用:
如果窗口参数hWnd不为零,则数据回调参数
(fDownLoadDataCallBack,dwDataUser)无效,如果窗口参数hWnd
为零,则回调原形为:
typedefint(CALLBACK*fDataCallBack)(LONGlRealHandle,DWORD
dwDataType,BYTE*pBuffer,DWORDdwBufSize,DWORDdwUser);
10.CLIENT_APILONGCALL_METHODCLIENT_PlayBackByTime(LONGlLoginID,intnChannelID,LPNET_TIMElpStartTime,LPNET_TIMElpStopTime,HWNDhWnd,fDownLoadPosCallBack
cbDownLoadPos,DWORDdwUserData);
函数说明:
网络回放,需要说明的是对同一设备的同一通道当前只能同时播放一个时间段录像参数说明:
lLoginID
的返回值
nChannelID
图像通道号,从0开始,必须指定
lpStartTime
开始时间
lpStopTime
结束时间
hWnd
回放窗口cbDownLoadPos
进度回调函数
dwUserData用户自定义数据
进度回调函数参数说明:
参见
返回值:
成功返回网络回放ID,失败返回0相关函数:
、,、、、、、、、
典型应用:
参见demo
11.CLIENT_APILONGCALL_METHODCLIENT_PlayBackByTimeEx(LONGlLoginID,intnChannelID,LPNET_TIMElpStartTime,LPNET_TIMElpStopTime,HWNDhWnd,fDownLoadPosCallBack
cbDownLoadPos,DWORDdwPosUser,fDataCallBackfDownLoadDataCallBack,DWORDdwDataUser);
函数说明:
带数据回调的按时间回放扩展接口,每通道同一时间只能播放一贝U录像,不能同时播放同一通道的多条记录。
窗口参数(hWnd)有效时不回
调数据,如果需要数据回调则窗口参数.(hWnd必须传0。
参数说明:
lLoginID
的返回值
nChannelID
图像通道号,必须指定
lpStartTime
开始时间
lpStopTime
结束时间
hWnd
回放窗口
cbDownLoadPos
进度回调函数
dwPosUser
进度回调用户参数
进度回调函数参数说明:
参见fDownLoadDataCallBack数据回调函数
dwDataUser
数据回调用户
数据回调函数参数说明参见:
的数据回调函数参数说明。
注意】本回调函数的返回值会影响SDK的内部操作:
返回1代表回调成功,没什么特殊情况都应该返回这个值。
返回0代表回调函数堵塞,这个会导致同一数据重复发送,即回放画面会出现重复;
返回-1代表系统出错,将直接结束回放线程,慎用!
返回值:
成功返回网络回放ID,失败返回0相关函数:
、,,、、、、、、典型应用:
如果窗口参数hWnd不为零,则数据回调参数(fDownLoadDataCallBack,dwDataUser)无效,如果窗口参数hWn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大华 网络 SDK 开发 手册