海康威视后台监控布防

这篇具有很好参考价值的文章主要介绍了海康威视后台监控布防。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

海康威视后台监控布防

由于公司业务的需要,前端时间一直在折腾海康摄像头的对接。在这期间踩过许多坑,做一记录分享。

大致的业务场景,主要用到的是海康的 Ai 摄像头与高清摄像头,实现监控布防与实时画面在 web 页面展示预览。

对于 Ai 摄像头内部已经上传了训练好的模型,直接调用海康提供 SDK 接口即可,对于高清摄像则是调用海康 SDK 提供的抓拍功能,保存图片到本地,调用训练好的 Python 模型进行本地图片的算法分析。 实时画面展示只是 Vue 与海康官方提供的 Web3.2 源码进行整合通过 Nginx 代理完成实时画面的同步展示,由于一部分摄像头硬件是不支持 websocket 流传输的,所以前端的页面登录展示并未直接通过摄像头 ip 的方式进行登录,而是配合超脑主机不同的通道号进行登录预览的。

海康官网

海康威视后台监控布防

海康威视后台监控布防

视频布防与抓拍

视频的抓拍与布防可以参考,海康提供的网络设备SDK资料中的 **设备网络SDK编程指南(抓拍机)**文档

海康威视后台监控布防

视频布防

海康威视后台监控布防

可以看到的是(布防)流程是比较简单的

  • 初始化 SDK (由于所有的接口都是使用 C++ 语言编写的,所以这里需要将这些开发包初始化为本地的 Java 可以调用执行的程序)

    /**
         * 初始化 hCNetSDK
         */
        public  void init(){
            /*加载SDK的动态库*/
            if (hCNetSDK == null) {
                if (!CreateSDKInstance()) {
                    System.out.println("Load SDK fail");
                }
            }
            /*初始化*/
            hCNetSDK.NET_DVR_Init();
            /*加载日志*/
            hCNetSDK.NET_DVR_SetLogToFile(3, "../sdklog", false);
            //设置报警回调函数
    
            Pointer pUser = null;
            if (!hCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(fMSFCallBack_V31, pUser)) {
                System.out.println("设置回调函数失败!");
            } else {
                System.out.println("设置回调函数成功!");
            }
    
        }
    

    这里的 hCNetSDK.NET_DVR_SetDVRMessageCallBack_V31(fMSFCallBack_V31, pUser) 是报警回调函数,需要进行提前的设置。

    /**
         * 动态依赖库加载
         * @return
         */
        private static boolean CreateSDKInstance() {
            if (hCNetSDK == null) {
                synchronized (HCNetSDK.class) {
                    String strDllPath = "";
                    try {
                        if (osSelect.isWindows()) {
                            //win系统加载库路径
                            Resource resource = new ClassPathResource("hikvision/windows/HCNetSDK.dll");
    //                        strDllPath = resource.getFile().getPath();
                            strDllPath = "D:\\windows\\HCNetSDK.dll";
    
                        } else if (osSelect.isLinux())
                            //Linux系统加载库路径
                            strDllPath = System.getProperty("user.dir") + "/lib/libhcnetsdk.so";
                        hCNetSDK = (HCNetSDK) Native.loadLibrary(strDllPath, HCNetSDK.class);
                    } catch (Exception ex) {
                        System.out.println("loadLibrary: " + strDllPath + " Error: " + ex.getMessage());
                        return false;
                    }
                }
            }
            return true;
        }
    
  • 登录设备(这里只需根据海康提供的 Dome 调用 login_v40 或者 login 进行登录获取登录成功的用户 Id 号)

    /**
         *
         * @param ip   设备IP
         * @param port SDK端口
         * @param user 设备用户名
         * @param psw  设备密码
         */
        public static int login_V40(String ip, short port, String user, String psw) {
            //注册
            HCNetSDK.NET_DVR_USER_LOGIN_INFO m_strLoginInfo = new HCNetSDK.NET_DVR_USER_LOGIN_INFO();//设备登录信息
            HCNetSDK.NET_DVR_DEVICEINFO_V40 m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V40();//设备信息
    
    //        String m_sDeviceIP = "192.168.0.100";//设备ip地址
            m_strLoginInfo.sDeviceAddress = new byte[HCNetSDK.NET_DVR_DEV_ADDRESS_MAX_LEN];
            System.arraycopy(ip.getBytes(), 0, m_strLoginInfo.sDeviceAddress, 0, ip.length());
    
    //        String m_sUsername = "admin";//设备用户名
            m_strLoginInfo.sUserName = new byte[HCNetSDK.NET_DVR_LOGIN_USERNAME_MAX_LEN];
            System.arraycopy(user.getBytes(), 0, m_strLoginInfo.sUserName, 0, user.length());
    
    //        String m_sPassword = "hzyjy123";//设备密码
            m_strLoginInfo.sPassword = new byte[HCNetSDK.NET_DVR_LOGIN_PASSWD_MAX_LEN];
            System.arraycopy(psw.getBytes(), 0, m_strLoginInfo.sPassword, 0, psw.length());
    
    //        m_strLoginInfo.wPort = 8085;
            m_strLoginInfo.wPort = port;
            m_strLoginInfo.bUseAsynLogin = false; //是否异步登录:0- 否,1- 是
            m_strLoginInfo.write();
    
            int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
            if (lUserID == -1) {
                log.debug("登录失败,错误码为" + hCNetSDK.NET_DVR_GetLastError());
                return lUserID;
            }
            log.debug(ip + ":设备登录成功!");
            return lUserID;
    
        }
    
  • 报警布放(这里的 lUserID 就是之前登录成功后返回的用户 ID,这个 ID 在登录成功的情况下是唯一的)文章来源地址https://www.toymoban.com/news/detail-459752.html

    /**
     * 报警布防接口
     *
     * @param lUserID
     */
    public static int setAlarm(int lUserID) {
        //报警布防参数设置
        HCNetSDK.NET_DVR_SETUPALARM_PARAM m_strAlarmInfo = new HCNetSDK.NET_DVR_SETUPALARM_PARAM();
        m_strAlarmInfo.dwSize = m_strAlarmInfo.size();
        m_strAlarmInfo.byLevel = 0;  //布防等级
        m_strAlarmInfo.byAlarmInfoType = 1;   // 智能交通报警信息上传类型:0- 老报警信息(NET_DVR_PLATE_RESULT),1- 新报警信息(NET_ITS_PLATE_RESULT)
        m_strAlarmInfo.byDeployType = 0;   //布防类型:0-客户端布防,1-实时布防
        m_strAlarmInfo.write();
        int lAlarmHandle = hCNetSDK.NET_DVR_SetupAlarmChan_V41(lUserID, m_strAlarmInfo);
        System.out.println("lAlarmHandle: " + lAlarmHandle);
        if (lAlarmHandle == -1) {
            logout(lUserID);
            log.debug("布防失败,错误码为" + hCNetSDK.NET_DVR_GetLastError());
            return lAlarmHandle;
        }
        log.debug("布防成功");
        return lAlarmHandle;
    }
    

到了这里,关于海康威视后台监控布防的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决海康威视监控安装插件后依然预览不了

    故障表现: 多次重装插件依然浏览不了监控画面,一直显示以下图片信息,提示安装插件 原因: 监控探头版本老旧,画面不能在新版浏览器上播放,两者不能兼容 解决办法: 1.IE浏览器 点开设置,找到“兼容性视图设置” 将监控画面网址添加入框中,点击确定,再点关闭

    2024年02月16日
    浏览(45)
  • vue3实现海康威视根据海康插件进行监控实时预览和回放功能

    因为我的文章已经写过基于vue实现海康web插件进行视频播放开箱即用文章,这个文章是利用 vite+vue3+js 进行编写的,大致内容跟vue2一样,拿过去能直接用。 至于我为什么要用js而不用ts,因为海康提供的三个脚本为js语言的,ts尝试过一次,我道行太浅,没搞明白。 这些代码是

    2024年02月05日
    浏览(96)
  • 海康威视监控视频,萤石云免费版四路并发访问限制绕过

    公司新装了不少海康威视摄像头,通过NVR连接到了萤石云,由于萤石云免费版限制了单个摄像头的并发访问数(每个摄像头同时只允许4个用户进行查看实时视频),但是又不想付费购买企业版,于是着手思考如何解决这个问题。 需求 需求很明确,每个摄像头需要支持多用户

    2023年04月08日
    浏览(109)
  • 前后端 java 对接海康威视监控-hls实现h5播放

    海康的获取监控预览流的接口当中支持 rtsp、rtmp、hls等协议。 这篇文章主要是说hls协议的。 贴上海康的开发平台地址,其中有对应的API:海康开发平台 这里除了main方法之外,有两个方法,分别是: 1)分页获取监控点资源。 即返回所有的监控点信息。 2)获取监控点预览取

    2024年02月08日
    浏览(52)
  • 海康威视监控相机的SDK与opencv调用(非工业相机)

    本篇主要对海康威视的监控相机的SDK回调进行研究,并于opencv结合,保存图像,以供后续其他处理,开发语言为C++ 2.1 海康SDK介绍 海康SDK下载地址 根据自身编译环境,下载对应的SDK,需要注意的是,不要和工业相机SDK相混淆,工业相机好像是MVS是什么玩意儿,现在暂时没研究

    2024年02月04日
    浏览(64)
  • vue2实现海康威视根据海康插件进行监控实时预览和回放功能,全套代码,开箱即用。

     这是一套拿到手就能直接用的根据海康提供的摄像机节点实时预览和回放的全步骤代码,开箱即用。  我的是基于vue2写的,vue3可以看我下一篇文章。 很多人在开发vue项目的时候,不知道怎么去开发视频实时预览和回放功能,然后一直查文档,再去看别人写的项目,就是无

    2023年04月15日
    浏览(80)
  • Python海康威视SDK实现实时预览:快速构建高效视频监控系统

    Python海康威视SDK实现实时预览:快速构建高效视频监控系统 在当今社会,安全问题越来越受到人们的关注,越来越多的企业和机构开始建设视频监控系统。而Python作为一种高效、易用的编程语言,已经成为了许多开发人员的首选。本文将介绍如何使用Python海康威视SDK来实现实

    2024年02月14日
    浏览(57)
  • uni-app引入海康威视h5player实现视频监控的播放

    知识储备 uni-app web-view组件相关知识:点击学习。 海康威视相关工具下载:点击跳转下载。 web-view组件不全屏显示:uni-app web-view 如果设置不全屏 不自动铺满。 工具下载 首先下载海康威视h5player的demo 在uni-app项目中static文件夹下创建文件目录,我命名为h5player 将demo中bin文件

    2024年02月02日
    浏览(60)
  • vue中web端播放rtsp视频流(摄像头监控视频)(海康威视录像机)

    ffmpeg下载 https://ffmpeg.org/download.html 找ffmpeg-release-essentials.zip点击下载,下载完解压 ffmpeg.exe 程序运行 添加成功后验证是否生效任意地方打开cmd窗口输入 ffmpeg 打印如下表示成功 新建一个app.js文件,同级目录下npm安装 node-rtsp-stream 我是直接写在项目里了,你们可以单独写在外

    2024年04月25日
    浏览(55)
  • 海康威视接口调用

    综合安防管理平台提供了OpenAPI安全认证库(Java)快速实现接口调用。 Java实现接口调用步骤如下: 新建Java工程,从Hikvision AI Cloud开放平台网站(海康开放平台)上下载“OpenAPI安全认证库(Java)”,获取artemis-http-client.jar,导入到Java工程中。 设置认证信息,设置ArtemisConfi

    2024年02月03日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包