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  应该退出成功了。

    
    
    
    
    
  • 相关阅读:
    【001】JS解析,反解析XML的一些问题
    [ Java面试题 ]并发篇
    [ Java面试题 ]WEB篇
    [ Java面试题 ]算法篇
    [ Java面试题 ]数据库篇
    [ Java面试题 ]泛型篇
    [ Java面试题 ]多线程篇
    [ Java面试题 ]持久层篇
    Java开发岗面试知识点解析
    [ SSH框架 ] Spring框架学习之二(Bean的管理和AOP思想)
  • 原文地址:https://www.cnblogs.com/xiatc/p/15347060.html
Copyright © 2011-2022 走看看