国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于??低暤腟DK實現(xiàn)二次開發(fā)

這篇具有很好參考價值的文章主要介紹了基于??低暤腟DK實現(xiàn)二次開發(fā)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

因為網(wǎng)上關(guān)于海康威視SDK這塊的開發(fā)資源比較少,自己也是一步一步摸索過來,知道那種痛苦,
所以把自己的一些過來人的經(jīng)驗寫出來供大家學(xué)習(xí)參考

1.對接??低暤腟DK

進(jìn)入海康威視官網(wǎng)

??祍dk二次開發(fā),Java,??低?java,spring boot,spring

下載你所需要的SDK開發(fā)包(這里我就用windows來作為案列)

海康sdk二次開發(fā),Java,??低?java,spring boot,spring

下載完SDK解壓

里面有開發(fā)文檔和SDK的動態(tài)庫文件,有各種開發(fā)語言的Demo案列。(可以參考一下他的接口調(diào)用)

海康sdk二次開發(fā),Java,??低?java,spring boot,spring

注:這里需要注意的是開發(fā)文檔,很重要!里面有一份文檔接口的API,和各種編程指南

運行Demo示例

這里我使用的語言是Java,通過他的提示導(dǎo)入所需要的dll文件

海康sdk二次開發(fā),Java,??低?java,spring boot,spring

海康sdk二次開發(fā),Java,??低?java,spring boot,spring

這里可以參考一下我導(dǎo)入的文件

注:這兩個jar包需要編譯

海康sdk二次開發(fā),Java,??低?java,spring boot,spring

注:導(dǎo)入成功之后如果能正確運行Demo并且能夠通過海康威視的攝像頭進(jìn)行預(yù)覽的話說明導(dǎo)入的文件是正確的

??祍dk二次開發(fā),Java,??低?java,spring boot,spring

開發(fā)接口之前的環(huán)境配置

現(xiàn)在就可以進(jìn)行自己的開發(fā)節(jié)奏了。記住上面那兩個jar包,和lib文件夾里面的那些文件。

  1. 創(chuàng)建一個springboot項目

  2. 把lib包放到springboot項目中的resources文件中

  3. 編譯那兩個jar包(這里建議是使用mvn的命令把jar包打入到自己的maven倉庫會比較好一點)

    mvm install:install-file 
        -Dfile=你jar包的路徑\examples.jar 
        -DgroupId=com.xx.xx 
        -DartifactId=examples
        -Dversion=1.0-SNAPSHOT 
        -Dpackaging=jar
    

    不導(dǎo)入的話也可以直接編譯到項目中去,或者使用maven的路徑引用

    <dependency>
        <groupId>examples</groupId>
        <artifactId>examples</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${basedir}/src/main/resources/lib/examples.jar</systemPath>
    </dependency>
    <dependency>
         <groupId>jna</groupId>
         <artifactId>jna</artifactId>
         <version>1.0</version>
         <scope>system</scope>
         <systemPath>${basedir}/src/main/resources/lib/jna.jar</systemPath>
    </dependency>
    
  4. 加載SDK庫

    注:這個接口就是后面開發(fā)用到的??低暤腟DK

    海康sdk二次開發(fā),Java,??低?java,spring boot,spring

    在這里添加這句代碼

    HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary(CommonKit.getWebPath() + "HCNetSDK.dll", HCNetSDK.class);
    

    這里我才用的是用動態(tài)獲取路徑的方式來加載的。

    注:這里的路徑很重要,如果不行的話可以配置為絕對路徑

    public class CommonKit {
    	/**
    	 * 獲取項目webapp目錄
    	 * @return String
    	 */
    	public static String getWebPath() {
    		return CommonKit.class.getClassLoader().getResource("").getPath().substring(1) + "lib/
    	}
    }
    

開始基于??低昐DK的開發(fā)

注:這里面的SDK其實是一個大雜燴,里面有很多接口其中有攝像頭的預(yù)覽,視頻的下載和語言的播報等接口

  1. 編寫工具類

    通過讀取海康威視的開發(fā)文檔我們得知調(diào)用??低暤腟DK接口的時候需要初始化,完成操作之后需要釋放資源。

    在實際開發(fā)中項目一般是一直運行的,所以這里我用了spring的兩個注解,在項目啟動時候初始化,結(jié)束項目運行

    的時候釋放資源。這樣就不用每一次操作都去初始化和釋放資源了。

    注:這兩個方法是必須的,所有的接口執(zhí)行都需要初始化

    這里只是初始化和釋放資源的代碼,其他的方法按照自己的業(yè)務(wù)邏輯來進(jìn)行完善。

    @Slf4j
    @Component
    public class HikvisionUtil {	
    	private static final HCNetSDK hcNetSDK = HCNetSDK.INSTANCE;
    
    	/**
         * 初始化
         */
        @PostConstruct
        public void init() {
            boolean flag = hcNetSDK.NET_DVR_Init();
            String message = flag ? "成功" : "失敗";
            log.info("攝像頭初始化" + message);
        }
    
        /**
         * 釋放資源
         */
        @PreDestroy
        public void leanup() {
            boolean flag = hcNetSDK.NET_DVR_Cleanup();
            String message = flag ? "成功" : "失敗";
            log.info("攝像頭關(guān)閉資源" + message);
        }
    }
    
  2. 如何排錯?

    新手在開發(fā)的時候可能會發(fā)生很多錯誤,這里我的建議是通過打印報錯編碼和日志來進(jìn)行排查錯誤

    這個接口能夠返回你上一次失敗操作的錯誤碼

    hcNetSDK.NET_DVR_GetLastError()
    

    得到錯誤碼,拿到報錯的海康SDK接口去他的文檔進(jìn)行查閱

    這里我用登錄接口來舉一個例子

??祍dk二次開發(fā),Java,海康威視,java,spring boot,spring

通過錯誤碼就能夠正確的找到錯誤的原因。

2.總結(jié)??低暤拈_發(fā)

第一次對接SDK的常見問題

  1. 怎么完善海康威視的后續(xù)開發(fā)?

    一般的情況都是基于攝像頭進(jìn)行開發(fā),在對攝像頭進(jìn)行開發(fā)的話建議查看此文檔,里面有接口調(diào)用順序和參數(shù)說明,基于文檔完善上面的工具類。

??祍dk二次開發(fā),Java,??低?java,spring boot,spring

??祍dk二次開發(fā),Java,??低?java,spring boot,spring

  1. 如何部署到Linux服務(wù)器上面?

    首先HCNetSDK接口類需要繼承Library,經(jīng)過本人的嘗試最新版本的SDK,
    繼承Library可以同時支持windows和Linux兩種環(huán)境

??祍dk二次開發(fā),Java,??低?java,spring boot,spring

如果需要部署到Linux服務(wù)器上面的話,需要下載Linux那一套SDK

下載SDK

注:Linux下面是so文件

海康sdk二次開發(fā),Java,??低?java,spring boot,spring

  1. 對接海康攝像頭出現(xiàn) java.lang.Error: Structure.getFieldOrder()

    Exception in thread "threadPoolTaskExecutor-1" java.lang.Error: Structure.getFieldOrder() on class com.ruoyi.web.equipment.hk.HCNetSDK$NET_DVR_USER_LOGIN_INFO does not provide enough names [0] ([]) to match declared fields [15] ([bUseAsynLogin, byHttps, byLoginMode, byProxyType, byRes2, byUseTransport, byUseUTCTime, byVerifyMode, cbLoginResult, iProxyID, pUser, sDeviceAddress, sPassword, sUserName, wPort])

    注:這個問題是因為??礿na.jar比較老,結(jié)構(gòu)體定義沒有g(shù)etFiledOrder,可創(chuàng)建一個類繼承 Structure

    import com.sun.jna.Structure;
    import java.lang.reflect.Field;
    import java.lang.reflect.Modifier;
    import java.util.ArrayList;
    import java.util.List;
    
    
    public class HIKSDKStructure extends Structure {
        protected List<String> getFieldOrder(){
            List<String> fieldOrderList = new ArrayList<String>();
            for (Class<?> cls = getClass();
                 !cls.equals(HIKSDKStructure.class);
                 cls = cls.getSuperclass()) {
                Field[] fields = cls.getDeclaredFields();
                int modifiers;
                for (Field field : fields) {
                    modifiers = field.getModifiers();
                    if (Modifier.isStatic(modifiers) || !Modifier.isPublic(modifiers)) {
                        continue;
                    }
                    fieldOrderList.add(field.getName());
                }
            }
            return fieldOrderList;
        }
    }
    

    然后對 HCNetSDK 接口中的靜態(tài)類里面,所有繼承 Structure 替換為 HIKSDKStructure 即可

3.后續(xù)完善

攝像頭在前端的預(yù)覽

攝像頭的截圖功能

攝像頭的手動錄像功能

攝像頭的回放下載功能


目前就寫這么多吧,本文是一篇入門介紹文,因為網(wǎng)上關(guān)于這塊的資料很少,

所以真心幫助那些和我一樣一開始就接觸對接硬件開發(fā)的程序員了解大概開發(fā)的流程。

注:一定要多看文檔,??低曃臋n算比較詳細(xì)的那種了。

有后續(xù)有開發(fā)問題的話可以在下方留言,或者咨詢本人的163郵箱18375669585@163.com。

最后:七夕節(jié)還在寫博客,寫文不易求大家給小弟個贊??文章來源地址http://www.zghlxwxcb.cn/news/detail-846592.html

到了這里,關(guān)于基于??低暤腟DK實現(xiàn)二次開發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 海康威視攝像頭二次開發(fā)_云臺控制_視頻畫面實時預(yù)覽(基于Qt實現(xiàn))

    ??低晹z像頭二次開發(fā)_云臺控制_視頻畫面實時預(yù)覽(基于Qt實現(xiàn))

    需求:需要在公司的產(chǎn)品里集成海康威視攝像頭的SDK,用于控制??低暤臄z像頭。 拍照抓圖、視頻錄制、云臺控制、視頻實時預(yù)覽等等功能。 開發(fā)環(huán)境: windows-X64(系統(tǒng)) + Qt5.12.6(Qt版本) + MSVC2017_X64(使用的編譯器) ??低曁峁┝?設(shè)備網(wǎng)絡(luò)SDK ,設(shè)備網(wǎng)絡(luò)SDK是基于設(shè)備私有網(wǎng)

    2024年02月13日
    瀏覽(23)
  • 【HIKROBOT】??禉C(jī)器人:工業(yè)相機(jī)SDK二次開發(fā)

    【HIKROBOT】海康機(jī)器人:工業(yè)相機(jī)SDK二次開發(fā)

    ??禉C(jī)器人官網(wǎng)鏈接:https://www.hikrobotics.com/cn 根據(jù)購買設(shè)備的型號下載用戶說明書 筆者實驗室購買了兩款,一款GigE網(wǎng)口接口的,一款USB接口 GigE網(wǎng)口接口 USB接口:MV-CA050-20UC 服務(wù)支持”“下載中心”“機(jī)器視覺”中下載MVS客戶端安裝包及SDK開發(fā)包。 1.1.1 Ubuntu18.04系統(tǒng)安裝 下

    2024年02月05日
    瀏覽(64)
  • 【記錄】海康相機(jī)(SDK)二次開發(fā)時的錯誤碼

    在進(jìn)行??祍dk二次開發(fā)的時候,經(jīng)常碰到各種錯誤,遂結(jié)合官方文檔和廣大網(wǎng)友的一些經(jīng)驗,把這些錯誤碼記錄一下,方便查找。筆者使用的SDK版本是HCNetSDKV6.1.9.4。 錯誤類型 錯誤碼 錯誤信息 NET_DVR_NOERROR 0 沒有錯誤。 NET_DVR_PASSWORD_ERROR 1 用戶名密碼錯誤。注冊時輸入的用戶名

    2024年04月08日
    瀏覽(24)
  • 【項目實踐】海康威視工業(yè)相機(jī)SDK開發(fā)小白版入門教程(VS2015+OpenCV4.5.1)

    【項目實踐】??低暪I(yè)相機(jī)SDK開發(fā)小白版入門教程(VS2015+OpenCV4.5.1)

    ??由于學(xué)校要求暑期實習(xí),于是找了一位學(xué)長開的公司,接了一個項目,是 對??低暪I(yè)相機(jī)(MV_CE200_10GM)進(jìn)行二次開發(fā),讀取其圖像并做分析處理。 于是花了一點時間查找的相關(guān)資料并記錄一些 入門要點 。 ??想先說說一些 “嘗試授人與漁” 的話,也是自己的一

    2024年02月04日
    瀏覽(39)
  • web實時預(yù)覽功能開發(fā) java ??祍dk nvr

    web實時預(yù)覽功能開發(fā) java ??祍dk nvr

    目錄 1.實時視頻流解決方案 2.步驟 1.搭建rtmp+flv服務(wù)器 2.java預(yù)覽demo 3.實時預(yù)覽 1.配置海康sdk庫文件 2.修改FPREVIEW_NEWLINK_CB代碼,推流 3.修改FPREVIEW_DATA_CB代碼,取流 4.javacv的推流 3.部分代碼 1.啟動項目初始化cms,stream的代碼 2.cms代碼 3.stream代碼 1.前端調(diào)用后臺接口, 2.后臺接口

    2024年02月16日
    瀏覽(59)
  • ??低暪I(yè)相機(jī)Linux SDK開發(fā)指南詳細(xì)步驟(Ubuntu20.04+單目、雙目相機(jī)單次、連續(xù)拍照)

    ??低暪I(yè)相機(jī)Linux SDK開發(fā)指南詳細(xì)步驟(Ubuntu20.04+單目、雙目相機(jī)單次、連續(xù)拍照)

    由于實驗需要使用雙目相機(jī)同步采集圖像,實驗室準(zhǔn)備的設(shè)備是海康威視的工業(yè)相機(jī),對其進(jìn)行二次開發(fā),其中花了大部分時間查找資料,以及代碼進(jìn)行反復(fù)調(diào)試,最后到達(dá)了想要的效果,并寫博客記錄一下。 首先是資料的查找,我們要注意的是??低曇还灿袃蓚€官網(wǎng),一

    2024年02月16日
    瀏覽(252)
  • ??低昐DK視頻錄制及強(qiáng)制I幀操作

    ??低昐DK視頻錄制及強(qiáng)制I幀操作

    使用下面方法可以實現(xiàn)視頻錄像功能。 該方法有個問題,視頻可以錄制,但是不能被前端頁面直接加載播放,因為視頻編碼格式問題,雖然可以用FFMPEG工具進(jìn)行格式轉(zhuǎn)化,但是引入第三方的庫,無疑會使代碼的維護(hù)性降低。 FFMPEG工具 地址 提取碼 zc14 使用FFmpeg進(jìn)行轉(zhuǎn)換的方法

    2023年04月24日
    瀏覽(40)
  • 大華SDK+JAVA+4g網(wǎng)絡(luò)攝像頭進(jìn)行二次開發(fā)

    大華SDK+JAVA+4g網(wǎng)絡(luò)攝像頭進(jìn)行二次開發(fā)

    監(jiān)控,相信大家都不陌生?,F(xiàn)在的監(jiān)控技術(shù)發(fā)展迅速,國內(nèi)以海康威視為首的智能視頻監(jiān)控提供商也層出不窮?,F(xiàn)在,這些提供商都已經(jīng)提供了相應(yīng)的SDK以及API接口,能夠很好的支撐我們進(jìn)行攝像機(jī)的二次開發(fā)工作。相信大家都有接觸過這么一個需求:利用手機(jī)可以自己進(jìn)行

    2024年01月20日
    瀏覽(20)
  • ??低暠O(jiān)控相機(jī)的SDK與opencv調(diào)用(非工業(yè)相機(jī))

    海康威視監(jiān)控相機(jī)的SDK與opencv調(diào)用(非工業(yè)相機(jī))

    本篇主要對??低暤谋O(jiān)控相機(jī)的SDK回調(diào)進(jìn)行研究,并于opencv結(jié)合,保存圖像,以供后續(xù)其他處理,開發(fā)語言為C++ 2.1 ??礢DK介紹 海康SDK下載地址 根據(jù)自身編譯環(huán)境,下載對應(yīng)的SDK,需要注意的是,不要和工業(yè)相機(jī)SDK相混淆,工業(yè)相機(jī)好像是MVS是什么玩意兒,現(xiàn)在暫時沒研究

    2024年02月04日
    瀏覽(39)
  • 如何降低海康、大華等網(wǎng)絡(luò)攝像頭調(diào)用的高延遲問題(一):??低暰W(wǎng)絡(luò)攝像頭的python sdk使用(opencv讀取sdk流)

    如何降低海康、大華等網(wǎng)絡(luò)攝像頭調(diào)用的高延遲問題(一):海康威視網(wǎng)絡(luò)攝像頭的python sdk使用(opencv讀取sdk流)

    目錄 1.python sdk使用 1.??礢DK下載 ?2.opencv讀取sdk流 ?先說效果,我是用的AI推理的實時流,延遲從高達(dá)7秒降到小于1秒 如果覺得這個延遲還不能接受,下一章,給大家介紹點上不得臺面的小方法 SDK(Software Development Kit)是軟件開發(fā)工具包的縮寫,它是一組用于開發(fā)特定軟件或

    2024年02月07日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包