海康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  應該退出成功了。

 

 

 
        
 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM