没有合适的资源?快使用搜索试试~ 我知道了~
首页Linux下使用Java调用Hikvision设备网络SDK的使用指南.pdf
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/11180817/bg1.jpg)
Linux 下使用 Java 调用 Hikvision 设备网络 SDK 使用指南
1 简介
由于在开发过程中,本来以为抓图项目会部署在 Windows 服务器上,但随着项目的进行发
现项目需要部署在 Linux 系统,甚至是国产化平台银河麒麟上,但在部署时发现在国产化平
台部署时出现缺包的问题无法解决,经过沟通把项目部署在 Ubuntu 16.04 服务器中。自然这
就涉及到使用 Java 调用海康威视提供的设备网络 SDK,即提供的.so 文件来实现摄像机抓拍
的功能。
1.1 .so 文件
so(Shared Object)是 Linux 环境下的程序函数库,即编译好的可以供其它程序使用的代
码和数据,和 Windows 系统中的.dll 文件差不多。在 Linux 操作系统中,函数库非常重要,
因为很多的软件之间都会互相使用彼此提供的函数库来进行特殊功能的运行,诸如身份验
证,SSL 函数库进行联机加密。
2 注意事项
2.1 下载
请移步到海康威视官网下载设备网络 SDK_V6.0.2.35(for Linux64)
![](https://csdnimg.cn/release/download_crawler_static/11180817/bg2.jpg)
2.2 目录结构
在当前的 Linux 设备网络 SDK 解压之后的目录结构如上图所示,可以看到较为关键的为 lib
目录, LinuxJavaDemo 目录中的 HCNetSDK.java 文件,以及 readme.txt.
2.3 readme.txt
该文件是 Linux 调用设备网络 SDK 的引导文档,具体内容如下:
如果 HCNetSDKCom 目录以及 libhcnetsdk.so、libhpr.so、libHCCore 文件和可执行文件在同
一级目录下,则使用同级目录下的库文件;
如果不在同一级目录下,则需要将以上文件的目录加载到动态库搜索路径中,设置的方式
有以下几种:
一. 将网络 SDK 各动态库路径加入到 LD_LIBRARY_PATH 环境变量
1. 在 当前的终端黑 窗 口 直 接 输入:export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/XXX:/XXX/HCNetSDKCom 只在当前终端起作
用
2. 修改~/.bashrc 或 ~/.bash_profile , 最 后 一行添加 export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/XXX:/XXX/HCNetSDKCom , 保 存 之 后 , 使 用
source .bashrc 执行该文件 ,当前用户生效
3. 修改/etc/profile,添加内容如第 2 条,同样保存之后使用 source 执行该文件 所
有用户生效
二.在/etc/ld.so.conf 文件结尾添加网络 sdk 库的路径,如/XXX 和/XXX/HCNetSDKCom/,保
存之后,然后执行 ldconfig
三.可以将网络 sdk 各依赖库放入到/lib64 或 usr/lib64 下
四.可以在 Makefile 中使用-Wl,-rpath 来指定动态路径,但是需要将网络 sdk 各个动态库
都用 –l 方式显示加载进来
比如:-Wl,-rpath=/XXX:/XXX/HCNetSDKCom -lhcnetsdk -lhpr – lHCCore –
lHCCoreDevCfg – lStreamTransClient – lSystemTransform – lHCPreview – lHCAlarm –
![](https://csdnimg.cn/release/download_crawler_static/11180817/bg3.jpg)
lHCGeneralCfgMgr –lHCIndustry –lHCPlayBack –lHCVoiceTalk –lanalyzedata -lHCDisplay
推荐使用一或二的方式,但要注意优先使用的是同级目录下的库文件。
需要注意的是在将以上文件的目录加载到动态库搜索路径中时方案一种的三种方法是并列
的,只要实现了一种即可,并不需要把三种方法全部执行。在抓图项目启动时,采用了修改
/etc/profile 配置文件,这样对各个用户均有效。配置的具体过程参见配置 LD_LIBRARY_PATH
2.4 设备抓图
在项目中使用摄像机进行图片抓取使用的是设备网络 SDK 中的设备抓图来实现的:
参见设备网络 SDK 压缩包解压之后的开发文档目录下的设备网络 SDK 编程指南(IPC).pdf,
在第五章函数说明有更加准确的介绍。
3 源码实现
3.1 配置 LD_LIBRARY_PATH
3.1.1 依赖
首先需要准备好海康威视 SDK,
lib.ta r
。
可以把该 tar 包解压到指定目录,比如把 tar 包放在了/home/sqh 目录下。并解压
root@aia-28-T630:/home/sqh# ls
lib lib.tar
root@aia-28-T630:/home/sqh#
![](https://csdnimg.cn/release/download_crawler_static/11180817/bg4.jpg)
3.1.2 环境变量
确保环境变量${LD_LIBRARY_PATH}目录具有包含上述的目录。
root@aia-28-T630:/home/sqh# echo ${LD_LIBRARY_PATH}
/usr/local/cuda-9.0/lib64:/usr/local/mpich3/lib::/home/sqh/lib:/home/sqh/lib/HCNetSDKCom
。
若不包含/home/sqh/lib 和/home/sqh/lib/HCNetSDKCom
则需要配置环境变量。
使用 root 用户修改配置文件/etc/profile
root@aia-28-T630:/home/sqh# vim /etc/profile
在尾部追加如下的内容:
export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8.5.38
export CLASSPATH=.:$JAVA_HOME/lib:$TOMCAT_HOME/lib
export PATH=$PATH:$TOMCAT_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/sqh/lib:/home/sqh/lib/HCNetSDKCom
添加内容的另外一部分为添加的 TOMCAT 配置环境变量。
使用 root 权限执行 source 目录
source /etc/profile
然后执行命令
root@aia-28-T630:/home/sqh# echo ${LD_LIBRARY_PATH}
/usr/local/cuda-9.0/lib64:/usr/local/mpich3/lib::/home/sqh/lib:/home/sqh/lib/HCNetSDKCom
。
表示环境变量配置成功
3.2 修改 HCNetSDK.java
该 JNA 映射接口文件在 LinuxJavaDemo 中的 src 目录,HCNetSDK.java 文件需要导入项目,笔
者导入了包 com.example.screenshot.sdk.
需 要 配 置 Native.loadLibrary("hcnetsdk",HCNetSDK.class), 第 一 个 参 数 , 确 保
LD_LIBRARY_PATH 已经正确配置并且生效,此时可以使用 libhcnetsdk.so 文件名中的 hcnetsdk
完成 so 文件的载入。
package com.example.screenshot.sdk;
import com.sun.jna.*;
import com.sun.jna.examples.win32.GDI32.RECT;
import com.sun.jna.examples.win32.W32API;
import com.sun.jna.examples.win32.W32API.HDC;
import com.sun.jna.examples.win32.W32API.HWND;
import com.sun.jna.ptr.ByteByReference;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.ptr.NativeLongByReference;
剩余15页未读,继续阅读
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/dd694239327f4cd29c7bdd002db3e376_lk142500.jpg!1)
思影影思
- 粉丝: 896
- 资源: 146
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 基于单片机的瓦斯监控系统硬件设计.doc
- 基于单片机的流量检测系统的设计_机电一体化毕业设计.doc
- 基于单片机的继电器设计.doc
- 基于单片机的湿度计设计.doc
- 基于单片机的流量控制系统设计.doc
- 基于单片机的火灾自动报警系统毕业设计.docx
- 基于单片机的铁路道口报警系统设计毕业设计.doc
- 基于单片机的铁路道口报警研究与设计.doc
- 基于单片机的流水灯设计.doc
- 基于单片机的时钟系统设计.doc
- 基于单片机的录音器的设计.doc
- 基于单片机的万能铣床设计设计.doc
- 基于单片机的简易安防声光报警器设计.doc
- 基于单片机的脉搏测量器设计.doc
- 基于单片机的家用防盗报警系统设计.doc
- 基于单片机的简易电子钟设计.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)