对接宇视网络摄像机SDK |
您所在的位置:网站首页 › 宇视摄像机管理服务器配置失败 › 对接宇视网络摄像机SDK |
1 SDK交互说明 1)通过抓包分析SDK跟服务器之间的交互,采用的是ONVIF协议 2)连接采用的是短链接,一般查询结束,下一次查询采用的端口是不一样的 3)SDK没有主动关闭短链接,如果频繁查询连接,会产生大量的TIME_WAIT,耗尽系统的端口资源,可以通过设置TIME_WAIT的存活时间优化一下,但是不能根本解决问题 4)取流端口是554,非常类似于通过ONVIF进行设备信息交互,RTSP取流方式 2 NETDEV_Login解析/** * 用户登录 User login * @param [IN] pszDevIP 设备IP Device IP * @param [IN] wDevPort 设备服务器端口 Device server port * @param [IN] pszUserName 用户名 Username * @param [IN] pszPassword 密码 Password * @param [OUT] pstDevInfo 设备信息结构体指针 Pointer to device information structure * @return 返回的用户登录句柄,返回 0 表示失败,其他值表示返回的用户登录句柄值. Returned user login ID. 0 indicates failure, and other values indicate the user ID. * @note */ NETDEV_API NEWINTERFACE LPVOID STDCALL NETDEV_Login(IN char *pszDevIP, IN INT16 wDevPort, IN char *pszUserName, IN char *pszPassword, OUT LPNETDEV_DEVICE_INFO_S pstDevInfo); 1)设备服务器端口一般情况下是80,也有81的情况,因此最好不要硬编码 2)登陆的接口耗时比较久,大概1秒,这个过程中会进行用户名和密码校验,然后进行设备信息查询 3)登陆离线状态的摄像机,耗时30秒才能返回,因此流媒体对接过程中,需要针对这个函数进行异步处理,避免阻塞下一个点播请求 4)调用登陆接口,提示出错65543,原因升级SDK,DLL只是替换了部分,导致加载DLL出错 3 NETDEV_SetExceptionCallBack可以设置NETDEV_SetExceptionCallBack的回调函数,该接口在设备断线的情况下,会进行函数的回调,测试结果表明,断线之后,可以不需要调用NETDEV_Login重新登陆 void STDCALL myNETDEV_ExceptionCallBack_PF(IN LPVOID lpUserID, IN INT32 dwType, IN LPVOID lpExpHandle, IN LPVOID lpUserData, OUT LPNETDEV_EXCEPTION_OUTPUT_INFO_S pstExceptionOutputInfo) { std::cout |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |