zoukankan      html  css  js  c++  java
  • 海康sdk 出现问题摄像头中断问题

    背景:有三个摄像头  一个没有用  但是登陆的时候检测是否在线,还有一个监控摄像头用于录制视频,还有一个拍照摄像头。每个摄像头对应的democapture 存储于map 对象中,理想情况下 只需登陆一次,后续调用直接拿map中存储的对象。除非拍照失败等原因会,initsdk   login camera 

    现场情况:偶现 拍照摄像头 掉线,同时监控摄像头也掉线  只能重启容器才能解决,网络良好   测试环境没有复现

    解决过程:

    1.原本demoCapture  中日志不完全,现在给每个sdk接口调用后 都打印  

    hCNetSDK.NET_DVR_GetLastError()

    2.现场返回的日志显示:拍照摄像头usrID 有23  然后拍照时报 错误码11  参数错误,问了海康的技术  userid 0-2047

     但是还是怀疑这个userid  导致的错误码11 ,因为只有这个参数的变化引起了这个问题。

    3.仔细分析日之后得出结论:

    监控摄像头运行一段时间报 5  设备总的连接数超过最大。例如网络摄像机只支持6路预览,预览第7路即会返回失败,错误码返回5。不同设备性能不一样,支持路数也不同。

    导致sdk 重新初始化  所有摄像头重新登录  userid持续增加  拍照摄像头userid 增到20左右开始报错误码11 

    4.两个思路解决

    4.1 userid 为什么会init后还叠加 :问了海康技术,

     发现我的cleanup  和init不在一个线程导致,遂更改代码,cleanup 后直接调用init  j解决此问题

    4.2 解决 监控摄像头报5 的问题,因为摄像头版本的问题  还没解决 所以把这个接口调用分到了另外一个容器,不要影响拍照摄像头

    4.3 其余问题:

    NET_DVR_StopSaveRealData(lRealHandle);

    这个接口之前没有判断参数,-1  或者null的时候也会报11错误码,后面判断了一下

    hCNetSDK.NET_DVR_Logout_V30(this.userId)

    这个接口一定要在前面接口执行完后执行 不然会报错误码12  但是返回是true  应该退出成功了。

    
    
    
    
    
  • 相关阅读:
    JAVA学习---JAVA基础元素
    JAVA开发-eclipse打开失败:A Java Runtime Environment(JRE) or Java Development Kit(JDK) must be available……的解决办法
    文章转载---西工大博士生文言文答辩致谢
    python中正则匹配之re模块
    python中random模块的使用
    python中函数的定义及调用
    Python中字符编码及转码
    python中字符串输出格式
    数据库与表的剩余操作
    线程其他相关用法和守护线程
  • 原文地址:https://www.cnblogs.com/xiatc/p/15347060.html
Copyright © 2011-2022 走看看