NVR的SKD二次开发接口文档
更新时间:2023-03-15 08:27:01 阅读量: 教育文库 文档下载
- 海康nvr二次开发推荐度:
- 相关推荐
NVR的SDK二次开发接口文档
采购的海康NVR及IPC的产品需支持SDK版本在XXX上 能够支持输出RTSP协议流 以下SDK的接口是必须的
1 账号验证
用户登录NVR:实现用户的认证功能,登录成功后,返回的用户ID 作为其他功能操作的唯一标识。
1.1 SDK初始化 1) 初始化SDK 接口:NET_DVR_Init 函数: BOOL NET_DVR_Init() 参数: 无
返回值: TRUE 表示成功,FALSE 表示失败。 说明: 调用设备网络SDK 其他函数的前提。 2) 释放SDK 资源 接口:NET_DVR_Cleanup 函数: BOOL NET_DVR_Cleanup() 参数: 无
返回值: TRUE 表示成功,FALSE 表示失败。
说明: 在结束之前最后调用。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 1.2 NVR用户的认证/登录 1) 激活设备
接口:NET_DVR_ActivateDevice
函数: BOOL NET_DVR_ActivateDevice(char* sDVRIP, WORD wDVRPort, LPNET_DVR_ACTIVATECFGlpActivateCfg) 参 数:
[in]sDVRIP 设备IP 地址 [in]wDVRPort 设备端口
[in]lpActivateCfg 激活参数,包括激活使用的初始密码 返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。
说明: 出厂设备需要先激活,然后再使用激活使用的初始密码登录设备。
2) IPServer 或者DDNS 域名解析,获取动态IP 地址和端口号 接口:NET_DVR_GetDVRIPByResolveSvr_EX
函数:BOOL NET_DVR_GetDVRIPByResolveSvr_EX (char* sServerIP, WORD wServerPort, BYTE* sDVRName, WORD wDVRNameLen, BYTE* sDVRSerialNumber, WORD wDVRSerialLen,
char* sGetIP, DWORD* dwPort) 参数:
[in]sServerIP 解析服务器的IP 地址
[in]wServerPort 解析服务器的端口号,IP Server 解析服务器端口号为7071,HiDDNS 服务器的端口号为80 [in]sDVRName 设备名称
[in]wDVRNameLen 设备名称的长度 [in]sDVRSerialNumber 设备的序列号 [in]wDVRSerialLen 设备序列号的长度 [out]sGetIP 获取到的设备IP 地址指针 [out]dwPort 获取到的设备端口号指针
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。
说 明: 该接口中的设备名称和设备序列号不能同时为空。通过设备域名或者序列号解析出设备当前IP地址和端口,然后调用NET_DVR_Login_V40 登录设备。支持的解析服务器有IPServer 和hiDDNS。 3) 用户注册设备
接口:NET_DVR_Login_V40
函 数: LONG NET_DVR_Login_V40(LPNET_DVR_USER_LOGIN_INFO pLoginInfo,LPNET_DVR_DEVICEINFO_V40 lpDeviceInfo)
参 数:
[in]pLoginInfo 登录参数,包括设备地址、登录用户、密码等 [out]lpDeviceInfo 设备信息(同步登录即pLoginInfo 中bUseAsynLogin 为0 时有效
返回值: 异步登录的状态、用户ID 和设备信息通过 NET_DVR_USER_LOGIN_INFO 结构体中设置的回调函数(fLoginResultCallBack)返回。对于同步登录,接口返回-1 表示登录失败,其他值表示返回的用户ID 值。用户ID 具有唯一性,后续对设备的操作都需要通过此ID 实现。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: pLoginInfo 中bUseAsynLogin 为0 时登录为同步模式,接口返回成功即表示登录成功;pLoginInfo中bUseAsynLogin 为1 时登录为异步模式,登录是否成功在输入参数设置的回调函数中返回。设备同时最多允许128 个用户注册。SDK 支持2048 个注册,返回UserID 的取值范围为0~2047。 4) 用户注销
接口:NET_DVR_Logout
函 数: BOOL NET_DVR_Logout(LONG lUserID) 参 数:
[in]lUserID 用户ID 号,NET_DVR_Login_V40 的返回值 返回值:TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。
说 明: 建议使用此接口实现注销功能。
2 视频监控浏览
1) 启动预览
接口:NET_DVR_RealPlay_V40
函 数: LONG NET_DVR_RealPlay_V40(LONG lUserID, LPNET_DVR_PREVIEWINFO lpPreviewInfo,
REALDATACALLBACK fRealDataCallBack_V30, void *pUser) 参 数:
[in] lUserID NET_DVR_Login_V40 的返回值
[in] lpPreviewInfo 预览参数,包括通道号、码流类型、取流协议 [in] fRealDataCallBack_V30 码流数据回调函数 [in] pUser 用户数据
返回值: -1 表示失败,其他值作为NET_DVR_StopRealPlay 等函数的句柄参数。接口返回失败请调用
NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: ? 该接口预览参数结构中可以设置当前预览操作是否阻塞(通过bBlocked 参数设置),若设为不阻塞,表示发起与设备的连接就认为连接成功,如果发生码流接收失败、播放失败等情况 以预览异常的方式通知上层。在循环播放的时候可以减短停顿的时间,与NET_DVR_RealPlay处理一致。若设为阻塞,表示直到播放操作完成才返回成功与否。
? 该接口中的回调函数可以置为空,这样该函数将不回调码流数据给用户,不过用户仍可以通过接口NET_DVR_SetRealDataCallBack 或NET_DVR_SetStandardDataCallBack 注册捕获码流数据 的回调函数以捕获码流数据。
fRealDataCallBack_V30 回调函数中不能执行可能会占用时间较长的接口或操作,不建议调用该SDK(HCNetSDK.dll)本身的接口。 ? Linux 64 位系统不支持软解码功能,因此需要将窗口句柄传NULL,设置回调函数,只取流不解码显示。
? 客户端异常离线时,设备端对取流连接的保持时间为10 秒。 2) 停止预览
接口:NET_DVR_StopRealPlay
函 数: LONG NET_DVR_StopRealPlay (LONG lRealHandle) 参 数: [in]lRealHandle 预览句柄,NET_DVR_RealPlay_V40 的返回值
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明:
3) 获取预览时用来解码和显示的播放库句柄 接口:NET_DVR_GetRealPlayerIndex
函 数: int NET_DVR_GetRealPlayerIndex(LONG lRealHandle) 参 数: [in]lRealHandle 预览句柄,NET_DVR_RealPlay_V40 的返回值
返回值: -1 表示失败,其他值表示播放句柄。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: 用户可以通过返回的句柄自行实现播放库SDK 提供的其他功能,详见本公司提供的软解码库函数说明《播放器SDK 编程指南》。
3 IPC录像
3.1 IPC信息操作
1) 获取IPC信息列表
接口:NET_DVR_GetSadpInfoList
函 数: BOOL NET_DVR_GetSadpInfoList(LONG lUserID, LPNET_DVR_SADPINFO_LIST lpSadpInfoList) 参 数: [in]lUserID NET_DVR_Login_V40 的返回值 [out]lpSadpInfoList IPC 信息列表结构
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: 2) 修改IPC信息
接口:NET_DVR_UpdateSadpInfo
函 数: BOOL NET_DVR_UpdateSadpInfo(LONG lUserID, LPNET_DVR_SADP_VERIFY lpSadpVerify, LPNET_DVR_SADPINFO lpSadpInfo)
参 数: [in]lUserID NET_DVR_Login_V40 的返回值 [in]lpSadpVerify 校验信息
[in]lpSadpInfo 修改的IPC 信息列表结构
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明:
3.2 声音控制功能 1) 设置声音播放模式 接口:NET_DVR_SetAudioMode
函 数: BOOL NET_DVR_SetAudioMode(DWORD dwMode)
参 数: [in]dwMode 声音播放模式:1- 独占声卡,单路音频模式;2- 共享声卡,多路音频模式
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: 不调用该接口设置声音播放模式,默认为独占播放。 2) 独占声卡模式下开启声音 接口:NET_DVR_OpenSound
函 数: BOOL NET_DVR_OpenSound(LONG lRealHandle) 参 数: [in]lRealHandle NET_DVR_RealPlay_V40 的返回值 返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。
说 明: 如果当前是共享模式播放,调用该接口将返回失败。以独占方式只能打开一路通道播放,即依次打开多个通道时仅打开最后一路。
3) 独占声卡模式下关闭声音 接口:NET_DVR_CloseSound
函 数: BOOL NET_DVR_CloseSound() 参 数: 无
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明:
4) 共享声卡模式下开启声音 接口:NET_DVR_OpenSoundShare
函 数: BOOL NET_DVR_OpenSoundShare(LONG lRealHandle) 参 数: [in]lRealHandle NET_DVR_RealPlay_V40 的返回值 返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明:
5) 共享声卡模式下关闭声音 接口:NET_DVR_CloseSoundShare
函 数: BOOL NET_DVR_CloseSoundShare (LONG lRealHandle) 参 数: [in]lRealHandle NET_DVR_RealPlay_V40 的返回值 返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用
NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: 6) 调节播放音量 接口:NET_DVR_Volume
函 数: BOOL NET_DVR_Volume(LONG lRealHandle,WORD wVolume) 参 数: [in]lRealHandle NET_DVR_RealPlay_V40 的返回值 [in]wVolume 音量,取值范围[0,0xffff]
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明:
3.3 实时预览数据捕获
1) 注册回调函数,捕获实时码流数据 接口:NET_DVR_SetRealDataCallBack
函 数: BOOL NET_DVR_SetRealDataCallBack(LONG lRealHandle, fRealDataCallBack cbRealDataCallBack,DWORD dwUser) 参 数:
[in]lRealHandle 预览句柄,NET_DVR_RealPlay_V40 的返回值 [in]cbRealDataCallBack 码流数据回调函数 [in]dwUser 用户数据
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。
说 明: 此函数包括开始和停止用户处理SDK 捕获的数据,当回调函数cbRealDataCallBack 设为非NULL值时,表示回调和处理数据;当设为NULL 时表示停止回调和处理数据。回调的第一个包是 40 个字节的文件头,供后续解码使用,之后回调的是压缩的码流。回调数据最大为256K 字节。
? cbRealDataCallBack回调函数中不能执行可能会占用时间较长的接口或操作,不建议调用该SDK(HCNetSDK.dll)本身的接口。 2) 注册回调函数,捕获实时码流数据(标准码流) 接口:NET_DVR_SetStandardDataCallBack
函 数: BOOL NET_DVR_SetStandardDataCallBack(LONG lRealHandle, fStdDataCallBack cbStdDataCallBack,DWORD dwUser) 参 数:
[in]lRealHandle 预览句柄,NET_DVR_RealPlay_V40 的返回值 [in]cbStdDataCallBack 标准码流回调函数 [in]dwUser 用户数据
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: 此函数包括开始和停止用户处理SDK 捕获的数据,当回调函数cbStdDataCallBack 设为非NULL值时,表示回调和处理数据;当设为NULL 时表示停止回调和处理数据。回调的第一个包是40 个字节的文件头,供后续解码使用,之后回调的是标准码流(含12 字节的RTP 头)。
? cbStdDataCallBack 回调函数中不能执行可能会占用时间较长的接口或操作,不建议调用该SDK(HCNetSDK.dll)本身的接口。 ? 此函数仅支持对于支持RTSP 协议取流的设备的标准码流回调。 3) 捕获数据并保存到指定的文件中 接口:NET_DVR_SaveRealData
函 数: BOOL NET_DVR_SaveRealData(LONG lRealHandle, char *sFileName) 参 数:
[in]lRealHandle NET_DVR_RealPlay_V40 的返回值 [in]sFileName 文件路径指针
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: V5.0.3.2 或以后版本,通过该接口保存录像,文件最大限制为1024MB,大于1024M 时,SDK 自动新建文件进行保存,文件开始将40 字节头自动写入,文件名命名规则为“在接口传入的文件 名基础上增加数字标识(例如:*_1.mp4、*_2.mp4)”。 4) 停止数据捕获
接口:NET_DVR_StopSaveRealData
函 数: BOOL NET_DVR_StopSaveRealData(LONG lRealHandle ) 参 数: [in]lRealHandle NET_DVR_RealPlay_V40 的返回值 返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。
说 明:
3.4 预览抓图 1) 设置抓图模式
接口:NET_DVR_SetCapturePictureMode 函 数: BOOL NET_DVR_SetCapturePictureMode( DWORD dwCaptureMode)
参 数: [in]dwCaptureMode 抓图模式:
enum tagPDC_PARAM_KEY{
BMP_MODE = 0, // BMP 模式 JPEG_MODE = 1 // JPEG 模式 }CAPTURE_MODE
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: 调用该接口设置抓图模式后,NET_DVR_CapturePicture 可抓取相应的图片。
2) 预览时,单帧数据捕获并保存成图片 接口:NET_DVR_CapturePicture
函 数: BOOL NET_DVR_CapturePicture(LONG lRealHandle, char *sPicFileName) 参 数:
[in]lRealHandle NET_DVR_RealPlay_V40 的返回值
[in]sPicFileName 保存图象的文件路径。路径长度和操作系统有关,sdk 不做限制,windows 默认路径长度小于等于256 字节(包括文件名在内)。
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: 在调用该接口之前可以调用NET_DVR_SetCapturePictureMode 设置抓图模式,默认为BMP 模 式。如果抓图模式为BMP 模式,抓取的是BMP 图片,保存路径后缀应为.bmp;如果抓图模式为JPEG 模式,抓取的是JPEG 图片,保存路径后缀应为.jpg。
? 若设备的当前分辨率为2CIF,播放库做了相关处理,抓取的图像为4CIF。
? 调用NET_DVR_CapturePicture 进行抓图,实际是播放库解码抓图,要求在调用NET_DVR_RealPlay_V40 等接口时传入非空的播放句柄(播放库解码显示),否则时接口会返回失败(调用次序错误)。 3) 单帧数据捕获并保存成JPEG 图片 接口:NET_DVR_CaptureJPEGPicture
函 数: BOOL NET_DVR_CaptureJPEGPicture(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, char *sPicFileName)
参 数: [in]lUserID NET_DVR_Login_V40 的返回值 [in]lChannel 通道号
[in]lpJpegPara JPEG 图像参数
[in]sPicFileName 保存JPEG 图的文件路径
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通过错误码判断出错原因。 说 明: 该接口用于设备的单帧数据捕获:SDK 发送命令给设备,设备抓图之后返回客户端,然后SDK将接收到的JPEG 图片数据保存成文件。抓图功能和抓图分辨率需要设备支持,IPC 设备一般只支持当前视频分辨率的抓取。
4) 单帧数据捕获并保存成JPEG 存放在指定的内存空间中 接口:NET_DVR_CaptureJPEGPicture_NEW
函 数: BOOL NET_DVR_CaptureJPEGPicture_NEW(LONG lUserID, LONG lChannel, LPNET_DVR_JPEGPARA lpJpegPara, char *sJpegPicBuffer, DWORD dwPicSize, LPDWORD lpSizeReturned)
参 数: [in]lUserID NET_DVR_Login_V40 的返回值 [in]lChannel 通道号 [in]lpJpegPara JPEG 图像参数
[in]sJpegPicBuffer 保存JPEG 数据的缓冲区 [in]dwPicSize 输入缓冲区大小 [out]lpSizeReturned 返回图片数据的大小
返回值: TRUE 表示成功,FALSE 表示失败。接口返回失败请调用NET_DVR_GetLastError 获取错误码,通、过错误码判断出错原因。
正在阅读:
NVR的SKD二次开发接口文档03-15
数据结构实验:基于线性表的图书信息管理04-25
浅析全球化语境下的当代审美文化11-03
《宵山万华镜》读后感精选10篇12-12
现代生产现场管理--08-31
分享超级技巧04-02
产业组织复习题03-11
有机化学基础题训练03-01
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 接口
- 文档
- 开发
- NVR
- SKD
- ANSYS梁单元如何提取应力
- 牛和鹅
- 高中语文专题22祭十二郎文试题(含解析)新人教版选修《中国古代诗歌散文欣赏》
- 曲靖市物业管理服务行业企业名录2018版524家 - 图文
- 数值分析(颜庆津)第三章 学习小结
- 毛邓三精选选择题(含答案)
- 中国建筑企业年金支付办法(分期支付、不调高标准)
- 有机化学综合测试题2(人卫版)
- 古代汉语(王宁版)书本课后题阅读译文
- 保险学案例分析(有题有答案)
- 定冠词the口诀及用法举例
- 单片空间后方交会实习报告
- 电大专科基础会计试题及答案(2017)最新整理
- 电饼铛做各种饼 - 图文
- 北交14秋《计算机文化基础》在线作业二答案
- 三个代表学习笔记
- 东师《高等数学(一)》19春在线作业1
- 微电影《夏天》剧本
- 水工程规划同意书论证报告编制导则
- 茶艺师