it计算机]cctv程序开发-基于海康开发包内容摘要:
fo)。 if (lUserID 0) { printf(Login error, %d\n, NET_DVR_GetLastError())。 NET_DVR_Cleanup()。 return。 } // //设置异常消息回调函数 中国电子科技集团公司第三研究所 15 / 83 NET_DVR_SetExceptionCallBack_V30(0, NULL,g_ExceptionCallBack, NULL)。 // //启动预览并设置回调数据流 LONG lRealPlayHandle。 NET_DVR_CLIENTINFO ClientInfo = {0}。 = NULL。 //需要 SDK 解码时句柄设为有效值,仅取流不解码时可设为空 = 1。 //预览通道号 = 0。 //最高位 (31)为 0 表示主码流,为 1 表示子码流 0~ 30 位表示连接方式: 0- TCP 方式; 1- UDP 方式; 2-多播方式; 3- RTP 方式。 = NULL。 //多播地址,需要多播预览时配置 BOOL bPreviewBlock = false。 //请求码流过程是否阻塞, 0:否, 1:是 lRealPlayHandle = NET_DVR_RealPlay_V30(lUserID, amp。 ClientInfo, g_RealDataCallBack_V30, NULL, 0)。 if (lRealPlayHandle 0) { printf(NET_DVR_RealPlay_V30 error\n)。 NET_DVR_Logout(lUserID)。 NET_DVR_Cleanup()。 return。 } // //关闭预览 NET_DVR_StopRealPlay(lRealPlayHandle)。 //注销用户 NET_DVR_Logout_V30(lUserID)。 NET_DVR_Cleanup()。 return。 } 中国电子科技集团公司第三研究所 16 / 83 回放和下载模块流程 按文件回放或下载需要通过查找录像文件功能先获取文件信息(相关接口 NET_DVR_FindFile_VNET_DVR_FindNextFile_V30),然后根据获取到的文件名开始回放或下载(相关接口NET_DVR_PlayBackByName、 NET_DVR_GetFileByName),特别提醒在调用了回放或下载的接口后,还必须调用控制接口( NET_DVR_PlayBackControl)的开始播放命令( NET_DVR_PLAYSTART)。 按时间回放或下载文件时,用户可以无需调用查找录像文件的相关接口,只要在接口中指定开始和结束时间,调用回放或下载接口(相关接口 NET_DVR_PlayBackByTime、 NET_DVR_GetFileByTime)后,还必须调用控制接口( NET_DVR_PlayBackControl)的开 始播放命令( NET_DVR_PLAYSTART)。 此时,将按照指定时间范围内最近的有录像的时间段开始回放或下载。 用户也可以通过调用查找录像文件的相关接口,获取文件的开始和结束时间后,按这个时间范围指定回放或下载接口中的时间参数,最后还必须调用控制接口( NET_DVR_PlayBackControl)的开始播放命令( NET_DVR_PLAYSTART)。 Linux 下,按文件回放和按时间回放时,若回放的窗口句柄不为 NULL(即需要 SDK 解码显示),需要调用初始化窗口接口( NET_DVR_DrawAreaInit)进行 SDL 窗口的初始化才能正常的解码显示,在停止回放时,需要调用释放窗口资源接口( NET_DVR_DrawAreaRelease)释放窗口资源。 中国电子科技集团公司第三研究所 17 / 83 示例代码 示例一:查找录像文件并下载 include include iostream include include using namespace std。 int saveRecordFile(int userId,char * srcfile,char * destfile) { int bRes = 1。 int hPlayback = 0。 if( (hPlayback = NET_DVR_GetFileByName(userId, srcfile, destfile)) 0 ) { printf( GetFileByName failed. error[%d]\n, NET_DVR_GetLastError())。 bRes= 1。 return bRes。 } if(!NET_DVR_PlayBackControl(hPlayback, NET_DVR_PLAYSTART, 0, NULL)) { printf(play back control failed [%d]\n,NET_DVR_GetLastError())。 bRes=1。 return bRes。 } int nPos = 0。 for(nPos = 0。 nPos 100amp。 amp。 nPos=0。 nPos = NET_DVR_GetDownloadPos(hPlayback)) { Sleep(5000)。 //millisecond } printf(have got %d\n, nPos)。 if(!NET_DVR_StopGetFile(hPlayback)) { printf(failed to stop get file [%d]\n,NET_DVR_GetLastError())。 bRes = 1。 return bRes。 } printf(%s\n,srcfile)。 中国电子科技集团公司第三研究所 18 / 83 if(nPos100) { printf(download err [%d]\n,NET_DVR_GetLastError())。 bRes=1。 return bRes。 } else { return 0。 } } void main() { // // 初始化 NET_DVR_Init()。 //设置连接时间与重连时间 NET_DVR_SetConnectTime(2020, 1)。 NET_DVR_SetReconnect(10000, true)。 // // 注册设备 LONG lUserID。 NET_DVR_DEVICEINFO_V30 struDeviceInfo。 lUserID = NET_DVR_Login_V30(, 8000, admin, 12345, amp。 struDeviceInfo)。 if (lUserID 0) { printf(Login error, %d\n, NET_DVR_GetLastError())。 NET_DVR_Cleanup()。 return。 } NET_DVR_FILECOND struFileCond。 = 0xFF。 = 1。 = 0xFF。 = 0。 = 2020。 = 3。 = 1。 = 10。 = 6。 中国电子科技集团公司第三研究所 19 / 83 =50。 = 2020。 = 3。 = 1。 = 11。 = 7。 = 0。 // //查找录像文件 int lFindHandle = NET_DVR_FindFile_V30(lUserID, amp。 struFileCond)。 if(lFindHandle 0) { printf(find file fail,last error %d\n,NET_DVR_GetLastError())。 return。 } NET_DVR_FINDDATA_V30 struFileData。 while(true) { int result = NET_DVR_FindNextFile_V30(lFindHandle, amp。 struFileData)。 if(result == NET_DVR_ISFINDING) { continue。 } else if(result == NET_DVR_FILE_SUCCESS) { char strFileName[256] = {0}。 sprintf(strFileName, ./%s, )。 saveRecordFile(lUserID, , strFileName)。 break。 } else if(result == NET_DVR_FILE_NOFIND || result == NET_DVR_NOMOREFILE) { break。 } else { printf(find file fail for illegal get file state)。 break。 } } //停止查找 if(lFindHandle 0) 中国电子科技集团公司第三研究所 20 / 83 { NET_DVR_FindClose_V30(lFindHandle)。 } //注销用户 NET_DVR_Logout(lUserID)。 //释放 SDK 资源 NET_DVR_Cleanup()。 return。 } 示例二:按时间播放录像文件 include include iostream include include using namespace std。 void main() { // // 初始化 NET_DVR_Init()。 //设置连接时间与重连时间 NET_DVR_SetConnectTime(2020, 1)。 NET_DVR_SetReconnect(10000, true)。 // // 注册设备 LONG lUserID。 NET_DVR_DEVICEINFO_V30 struDeviceInfo。 lUserID = NET_DVR_Login_V30(, 8000, admin, 12345, amp。 struDeviceInfo)。 if (lUserID 0) { printf(Login error, %d\n, NET_DVR_GetLastError())。 NET_DVR_Cleanup()。 return。 } NET_DVR_TIME struStartTime, struStopTime。 = 2020。it计算机]cctv程序开发-基于海康开发包
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
it计算机]mod_python_328中文手册
_REQUEST_TIME_OUT 408 HTTP_CONFLICT 409 HTTP_GONE 410 HTTP_LENGTH_REQUIRED 411 HTTP_PRECONDITION_FAILED 412 HTTP_REQUEST_ENTITY_TOO_LARGE 413 HTTP_REQUEST_URI_TOO_LARGE 414
it计算机]hds主要技术指标和运行性能的详细描述
的 Online RAID Group Expansion 功能可以保证在线的将新增加的磁盘加入 RAID 组中,如下图可以增加 3 块磁盘使原 RAID6 的 3D+2P 改变为 6P+2P,这些变化可以在线进行,同时 RAID 还自动实现 restripe,即条带数据重新打散分配到更多的磁盘中,使容量提升的同时,性能也得到了更大的提升。 LUN的扩展和缩小 阵列系统都会有一个内部管理核叫做
it计算机]citrix解决方案说明
HDX MediaStream和HDX Adaptive Orchestration什么关系。 HDX Adaptive Orchestration的SmartRendering特性能智能的判断当前的网络带宽情况,同时还能判断客户端是否能够进行播放。 3.Windows包含的解码器Format TypeWindows XP ProfessionalWindows 2000
无线调频发射器的设计论文资料
1、 设 计专 业: 通信工程 班级学号: 通信 0303 17 学生姓名: 张华夏 指导教师: 许书云 高级工程师 二七 年 六 月天津工程师范学院本科生毕业设计无线调频发射器的设计信 0303 班学生姓名:张华夏指导教师:许书云 高级工程师系 别:电子工程系2007 年 6 月摘 要利用无线通信信道的远距离语音传输业务,是近年来发展很快的一门技术。 由于语音业务对误码不敏感