springboot整合海康摄像头预览、回放、抓图、下载完整代码

本地测试环境是电脑网口直接连接了一台摄像头,保证本地能打开摄像头的设置页面。

项目结构:

demo框架采用springboot,直接运行DemoApplication类就行。完整代码已上传。

 

实现方式有两种

第一个方式是,使用海康官方的web3.0,项目启动后直接用ie打开 http://localhost:8899/hk

这个方式需要安装项目下的resources/static/hk/WebComponentsKit.exe

这个exe安装文件是32位的,只能用32位的IE浏览器打开,我的测试版本是

打开后的效果:

点击登录,开始预览就可以预览了。

回放模块的js代码改造过,那个开始时间和结束时间,和搜索出来的文件时间有区别,已改造好。

现在回放和下载都是正常的,

注意:点击开始回放后,回放的视频是以开始时间和结束时间来回放的。

不能点击单个文件回放,如果要回放单个文件,请填写合适的开始时间和结束时间,以便只能搜索这个文件。

 

第二种方式是

参考地址:https://blog.csdn.net/qq_36720088/article/details/82893924?utm_source=distribute.pc_relevant.none-task

1.使用海康威视的官方SDK访问摄像头,获取摄像头可用通道号,组装rtsp地址,获取摄像头的实时rtsp视频流。
2.使用FFmpeg将rtsp流转换成rtmp流供网页显示。
3.服务器搭建集成nginx-rtmp插件的nginx服务,将转换的rtmp流推送至nginx制定代理地址,实现外网访问。
4.前端页面使用免费的前端H5插件video.js实现实时预览

首先安装FFmpeg,下载地址:https://ffmpeg.zeranoe.com/builds/

安装完成后,在项目中配置安装路径

 

再把项目中的/resources/static/nginx-rtmp-win32-master.zip,解压到英文路径下,

注意:路径有中文会导致启动失败

 

项目启动成功后,访问直播地址 http://localhost:8899/vedio

回放地址是:http://localhost:8899/vedioBack

回放的功能是利用直播做的,重新播放的时候要刷新页面,

回放的时间是写死的,请自行修改,时间格式:年月日T时分秒Z

抓图和录像下载,请直接在浏览器访问地址测试

localhost:8899/dev/catchPic

localhost:8899/dev/downloadVideo

 

完整项目代码已上传,

下载地址:https://download.csdn.net/download/miao5371/12319142

 

  • 13
    点赞
  • 158
    收藏
    觉得还不错? 一键收藏
  • 41
    评论
如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
可以使用开源的ONVIF Device Manager库来实现Spring Boot与Onvif协议的整合控制海康摄像头转动。 以下是实现步骤: 1. 在pom.xml文件中引入ONVIF Device Manager依赖: ```xml <dependency> <groupId>com.github.onvif</groupId> <artifactId>onvif-device-manager</artifactId> <version>${onvif.device.manager.version}</version> </dependency> ``` 2. 创建一个OnvifService类,用于调用Onvif Device Manager库的API: ```java @Service public class OnvifService { private static final Logger logger = LoggerFactory.getLogger(OnvifService.class); @Autowired private OnvifDeviceManager onvifDeviceManager; /** * 获取设备信息 * @param ipAddress 设备IP地址 * @param username 用户名 * @param password 密码 * @return 设备信息 * @throws ConnectException 连接异常 * @throws SOAPException SOAP异常 * @throws IOException IO异常 */ public OnvifDeviceInfo getDeviceInfo(String ipAddress, String username, String password) throws ConnectException, SOAPException, IOException { OnvifCamera onvifCamera = onvifDeviceManager.getOnvifCamera(ipAddress, username, password); if (onvifCamera == null) { return null; } return new OnvifDeviceInfo(onvifCamera.getHostname(), onvifCamera.getManufacturer(), onvifCamera.getModel(), onvifCamera.getFirmwareVersion()); } /** * 控制云台转动 * @param ipAddress 设备IP地址 * @param username 用户名 * @param password 密码 * @param tilt 垂直方向转动速度 * @param pan 水平方向转动速度 * @throws ConnectException 连接异常 * @throws SOAPException SOAP异常 * @throws IOException IO异常 */ public void move(String ipAddress, String username, String password, float tilt, float pan) throws ConnectException, SOAPException, IOException { OnvifCamera onvifCamera = onvifDeviceManager.getOnvifCamera(ipAddress, username, password); if (onvifCamera == null) { return; } OnvifPTZ ptz = onvifCamera.getPtz(); if (ptz == null) { return; } ptz.move(tilt, pan); } } ``` 3. 在Controller中注入OnvifService类,调用其API实现控制海康摄像头转动: ```java @RestController @RequestMapping("camera") public class CameraController { @Autowired private OnvifService onvifService; /** * 获取设备信息 * @param ipAddress 设备IP地址 * @param username 用户名 * @param password 密码 * @return 设备信息 */ @GetMapping("info") public OnvifDeviceInfo getDeviceInfo(String ipAddress, String username, String password) { try { return onvifService.getDeviceInfo(ipAddress, username, password); } catch (ConnectException | SOAPException | IOException e) { e.printStackTrace(); return null; } } /** * 控制云台转动 * @param ipAddress 设备IP地址 * @param username 用户名 * @param password 密码 * @param tilt 垂直方向转动速度 * @param pan 水平方向转动速度 */ @PostMapping("move") public void move(String ipAddress, String username, String password, float tilt, float pan) { try { onvifService.move(ipAddress, username, password, tilt, pan); } catch (ConnectException | SOAPException | IOException e) { e.printStackTrace(); } } } ``` 以上就是使用Spring Boot整合Onvif协议控制海康摄像头转动的实现步骤。
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值