设备网络SDK 是基于设备私有网络通信协议开发的,为嵌入式网络硬盘录像机、NVR、视频服务器、网络摄像机、网络球机、解码器、多屏控制器、报警主机等网络产品服务的配套模块,用于远程访问和控制设备软件的二次开发。本文档主要介绍智能交通摄像机(抓拍机)相关的功能,设备型号如下:
(i)DS-2CD9361(-S)、(i)DS-2CD9282(-S)、DS-2CD9111(-S)、(i)DS-2CD9120(-H/-HS)、(i)DS-2CD9121(-S/-V/A/A-S)、DS-2CD9122(-S/-H/-HS)、(i)DS-2CD9131(-S/-IS/-KS)、(i)DS-2CD9151A(-S)、(i)DS-2CD9152(-H/-S/-HS/-HIS/-HKS)、(i)DS-2CD9182(-H/-HS)、DS-2CD986A、DS-2CD986C、DS-2CD977、DS-2CD976(-V)、DS-2CD966(-V)等(i)DS-2CD93xx、(i)DS-2CD92xx、(i)DS-2CD91xx、和DS-2CD9xx 系列智能交通摄像机。
设备网络SDK 主要功能:实时码流预览、摄像机参数配置、网络触发抓拍以及获取上传的抓拍图片等功能。
本版本的设备网络SDK 开发包中包含以上各个组件,HCNetSDK.dll、HCCore.dll 必须加载(对于Linux SDK,即libhcnetsdk.so、libHCCore.so),其他组件,用户可以根据需要选择其中的一部分或者全部,以下将对各个组件在SDK 中的作用和使用条件分别说明。
网络通讯库:设备网络SDK 的主体,主要用于网络客户端与各类产品之间的通讯交互,负责远程功能调控, 远程参数配置及码流数据的获取和处理等。设备网络 SDK V5.0 针对产品应用业务进行细化,对之前版本的SDK 的功能模块进行组件化,其中外部接口(HCNetSDK.dll)仍然保持和设备网络SDK V4.x版本保存一致(向下兼容),其他单独的业务功能(预览、回放等)可以加载单独的模块组件,多个业务功能也可以组合使用。更新SDK 时,HCNetSDK.dll、HCCore.dll 以及HCNetSDKCom 文件夹下的功能组件库文件都需要更新加载,且HCNetSDKCom 文件夹名不能修改。
hpr 库:网络通讯库的依赖库,Linux SDK 使用时和网络通讯库同时加载。
RTSP 通讯库:支持RTSP 传输协议的网络库。当需要对支持RTSP 协议的产品进行取流等操作时就必须加载该项组件。
转封装库:库的功能可以分为两种:一种是将标准码流转换成采用我们公司封装格式的码流。当用户需要对支持RTSP 协议的产品捕获采用本公司封装格式的码流数据时(即当设置NET_DVR_RealPlay_V40接口中的回调函数捕获数据或者调用NET_DVR_SetRealDataCallBack 接口捕获数据时)必须加载该组件。另一种功能是能将标准码流转换成其他格式的封装,如3GPP、PS 等。例如,当用户需要对支持RTSP协议的产品实时捕获指定封装格式的码流数据(对应的SDK 接口为NET_DVR_SaveRealData)时必须加载该项组件。
语音对讲库:用于语音对讲时通过声卡采集数据并按照指定的编码格式编码码流或者解码播放音频码流数据(不带封装格式的码流数据)。V4.2.2.5 及以前版本SDK 均采用windows API 实现相关功能。之后版本默认使用语音对讲库的方式,通过接口NET_DVR_SetSDKLocalCfg 可以选择之前的windows API模式。OpenAL32.dll 为依赖库,语音对讲库模式下必须加载。Windows64 位或者Linux 系统下无语音对讲功能。
字符转换库:电脑字符集和设备字符集不一致时,SDK 内部需要进行字符编码转换,SDK 默认使用libiconv库进行类型转换。如果用户不想使用libiconv 编码库,可以调用NET_DVR_SetSDKLocalCfg (类型:NET_SDK_LOCAL_CFG_TYPE_BYTE_ENCODE)设置字符转码回调函数,将用户自己的字符编码接口告知SDK,然后SDK 将使用用户提供的字符编码接口进行字符串处理。
模拟能力集:如果需要获取设备能力集(NET_DVR_GetDeviceAbility),建议调NET_DVR_SetSDKLocalCfg启用模拟能力集,此时需要加载LocalXml.zip(要求和网络通讯库放在同一个目录下)。
帧分析库:用于分析视音频帧数据,调用NET_DVR_SetESRealPlayCallBack、NET_DVR_SetPlayBackESCallBack 设置裸码流回调函数等接口时,必须加载该库文件。
播放库:主要用于对实时码流数据进行解码显示(实现预览功能)和对录像文件进行回放解码等。用户如果需要在SDK 内部进行对实时流和录像码流播放显示时(即NET_DVR_RealPlay_V40 接口的第二个结构体参数的播放句柄设置成有效句柄时)必须加载该组件,而如果用户仅需要用网络通讯库捕获到数据后再外部自行处理就不需要加载该组件,这种情况下用户在外部自行解码将更灵活,可参见软解码库函数说明《播放器SDK 编程指南》。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !