JAVA调用海康威视SDK

一,开发前准备

1、去海康威视官网下载sdk包,附官网:https://www.hikvision.com/cn/index.html?jmode=j1

在这里插入图片描述

2、选择自己对应版本下载开发包

注意:官方SDK区分32位和64位,如果用64位的SDK需要使用JDK64位的,不能使用32位JDK。32位的SDK同理,只能使用32位JDK的。
在这里插入图片描述

3、下载完成后,开发包结构

在这里插入图片描述

二,实践

使用工具 idea+jdk 1.8

1、运行Demo示例

  • idea导入示例项目,并按说明导入dll
    在这里插入图片描述
  • 项目结构
    在这里插入图片描述
  • 如果项目报错,将项目中的 jna.jar 包添加到项目的Libraries中。

在这里插入图片描述

  • 项目不报错后,可以打开 ClientDemo.java 中的main方法运行一下。如果能成功运行,祝贺你,或许你已经可以调通设备了。如果不能运行请往下继续阅读。
    在这里插入图片描述
  • 直接运行后后报错
    提示无法加载库
    在这里插入图片描述
    这时不要惊慌,打开 HCNetSDK.java 文件
HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("HCNetSDK", HCNetSDK.class);

改为

HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary("项目的绝对路径/HCNetSDK", HCNetSDK.class);  

示例:
在这里插入图片描述
然后继续运行ClientDemo.java 中的main方法
可能会继续出现刚才一样错误,提示无法加载库
在这里插入图片描述
这时同样打开 HCNetSDK.java 文件

PlayCtrl INSTANCE = (PlayCtrl) Native.loadLibrary("PlayCtrl", PlayCtrl.class);

改为

PlayCtrl INSTANCE = (PlayCtrl) Native.loadLibrary("项目的绝对路径/PlayCtrl", PlayCtrl.class);  

注意此处的PlayCtrl后面是否需要加dll后缀,我看下其它博客标明需要加dll后缀,不然会报错,我这里没有加dll后缀,运行也没有报错
示例
在这里插入图片描述

  • 出现上面两种提示无法加载库的情况也可使用此方法
public class ClientDemoPATH {
    public static String DLL_PATH;
    static {
        String path = (ClientDemo.class.getResource("/").getPath()).replaceAll("%20", " ").substring(1).replace("/", "\\");
        try {
            DLL_PATH = java.net.URLDecoder.decode(path, "utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
    }
}

 HCNetSDK INSTANCE = (HCNetSDK) Native.loadLibrary(ClientDemoPATH.DLL_PATH+"HCNetSDK",HCNetSDK.class);
 PlayCtrl INSTANCE = (PlayCtrl) Native.loadLibrary(ClientDemoPATH.DLL_PATH+"PlayCtrl",PlayCtrl.class);

注意使用此方法需要将dll放在bin文件夹下

  • 再次打开 ClientDemo.java 中的main方法运行一下
    在这里插入图片描述
  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Java调用海康威视SDK实现摄像头内网转外网并在前端展示的过程大致包括以下几步: 1. 安装与配置:首先需要在服务器上安装并配置好海康威视SDK相关的软件和驱动程序。 2. 初始化SDK:在Java代码中使用海康威视SDK提供的API,通过调用初始化函数初始化SDK,以便后续使用。 3. 连接设备:使用SDK提供的相关函数,建立与摄像头设备的连接。在连接设备时,需要提供设备的IP地址、端口号、用户名和密码等信息。 4. 实时预览:通过调用SDK提供的函数,实现预览摄像头的功能。可以在前端页面中嵌入一个视频播放器,并从后台将实时预览的视频流数据传输到前端页面进行展示。 5. 内网转外网:如果需要将摄像头的视频流从内网转到外网进行访问,则需要进行一些网络配置。可以采用端口映射(Port Mapping)或者将摄像头设备设置为DMZ主机等方式,实现将内网的摄像头视频流通过公网IP地址在外部进行访问。 6. 前端展示:将从后台传输过来的实时预览的视频流数据在前端页面中进行展示。可以使用HTML5的video标签进行视频播放,并通过JavaScript控制视频播放器的相关操作。 需要注意的是,由于涉及到海康威视SDK的使用和网络配置等方面的内容,可能涉及到安全和权限的问题,需要仔细阅读并遵守相关的开发文档和使用协议。同时,可以根据实际需求,进行一些其他的配置和功能实现,如录像、抓图等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值