Java_海康摄像头二次开发,视频录制上传__志伟随笔

海康威视SDK二次开发JAVA(SpringBoot) 功能背景: 项目里面使用到海康威视摄像头录播课堂,之后取出视频分享。 项目环境: SpringBoot、JDK1.8、IntelliJ IDEA 2020.1、SDK V6.1、FFMPEG、康威视摄像头、录像机。 详细步骤: 一、引入SDK (海康威视 [官网入口] ),下载对应自己服务器版本的SDK,我选择的是《设备网络SDK_Win64 V6.1.6.45_build20210302》。 二、下载SDK解压后,如图: Demo示例 :里面有个java Demo可以提供参考。 开发文档:设备网络S 阅读详情

关于海康威视摄像头的二次开发,在我看来,玩了两天,发现分三步吧

先说第一步,让海康的程序可以在自己项目里运行起来

首先在海康威视的官网下载对应的SDK文档,看你电脑多少位的,32的就下32,64的就下载64的就可以了,别下载错了,下载完解压后如下图
在这里插入图片描述

然后将Demo文件中对应的版本导入到自己的开发工具中去,我用的Java开发的所以直接将java放进来,然后将dll全都放进来,大概目录如下图
在这里插入图片描述

这里需要注意的是那个Txt文档里面说的几句话,不要改Com名字还有放在同一目录下,如下图的注意事项

在这里插入图片描述

然后把里面的路径改一下,在自己的电脑运行一下看是否可以启动成功

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

这里是个坑,我一开始以为这个路径是存放dll文件的路径,让我改来改去,一直提示加载错误,这个路径就是SDK的绝对路径,在这里这个路径不需要改,默认的就可以了,然后修改下ip,账户名,密码,端口号,然后点运行,然后就出现了如图的窗口

 jLabelUserName.setText("用户名");

        jLabelIPAddress.setText("IP地址");

        jTextFieldPortNumber.setText("8000");

        jTextFieldIPAddress.setText("xxx.xxx.4.66");

        jLabelPortNumber.setText("端口");

        jLabelPassWord.setText("密码");

        jPasswordFieldPassword.setText("xxxxxx");

        jTextFieldUserName.setText("admin");

在这里插入图片描述

这样第一步就完成了,
然后第二步的话就是写个测试小例子,让它运行起来,我写的代码很简单,都是根据官网文档上的接口写的,直接上代码把

public class Test {
	static HCNetSDK hCNetSDK = HCNetSDK.INSTANCE;
	static HCNetSDK.NET_DVR_DEVICEINFO_V30 m_strDeviceInfo;// 设备信息
	static HCNetSDK.NET_DVR_IPPARACFG m_strIpparaCfg;// IP参数
	static HCNetSDK.NET_DVR_CLIENTINFO m_strClientInfo;// 用户参数
	static NativeLong lUserID;// 用户句柄
	static NativeLong m_lLoadHandle;// 下载句柄
	static String sDeviceIP;// IP
	static Timer Downloadtimer;

	public void A_d() {
		// =====================1. 初始化开始====================================
		boolean initfalse = hCNetSDK.NET_DVR_Init();// 初始化
		if (initfalse != true) {
			System.out.println("初始化失败!");
		} else {
			System.out.println("初始化成功!");
		}
		// =====================初始化结束=====================================

		// =====================2. 注册服务开始====================================
		sDeviceIP = "xxxxxx";// IP
		int iPort = 8000;// 端口号
		String textFieldUserName = "admin";// 用户名
		String passwordFieldPwd = "xxxxx";// 密码

		m_strDeviceInfo = new HCNetSDK.NET_DVR_DEVICEINFO_V30();
		lUserID = hCNetSDK.NET_DVR_Login_V30(sDeviceIP, (short) iPort, textFieldUserName, passwordFieldPwd,
				m_strDeviceInfo);
		long userID = lUserID.longValue();
		if (userID >= 0) {
			System.out.println("登陆注册成功");
		} else if (userID == -1) {
			System.out.println("登陆注册失败");
		}

		// =====================注册服务结束====================================

		// =====================按照开始时间和结束时间下载视频
		// 开始====================================
		m_lLoadHandle = new NativeLong(-1);
		if (m_lLoadHandle.intValue() == -1) {
			HCNetSDK.NET_DVR_TIME struStartTime;
			HCNetSDK.NET_DVR_TIME struStopTime;

			struStartTime = new HCNetSDK.NET_DVR_TIME();
			struStopTime = new HCNetSDK.NET_DVR_TIME();
			struStartTime.dwYear = Integer.parseInt("2019");// 开始时间
			struStartTime.dwMonth = Integer.parseInt("5");
			struStartTime.dwDay = Integer.parseInt("6");
			struStartTime.dwHour = Integer.parseInt("18");
			struStartTime.dwMinute = Integer.parseInt("0");
			struStartTime.dwSecond = Integer.parseInt("0");

			struStopTime.dwYear = Integer.parseInt("2019");// 结束时间
			struStopTime.dwMonth = Integer.parseInt("5");
			struStopTime.dwDay = Integer.parseInt("6");
			struStopTime.dwHour = Integer.parseInt("18");
			struStopTime.dwMinute = Integer.parseInt("5");
			struStopTime.dwSecond = Integer.parseInt("0");
			int m_iChanShowNum = 1;// 通道(摄像头IP地址)

			String sFileName = "D:\\test\\" + sDeviceIP + m_iChanShowNum + struStartTime.toStringTitle()
					+ struStopTime.toStringTitle() + ".mp4";
			System.out.println(sFileName);

			// 视频下载调用
			m_lLoadHandle = hCNetSDK.NET_DVR_GetFileByTime(lUserID, new NativeLong(m_iChanShowNum), struStartTime,
					struStopTime, sFileName);
			if (m_lLoadHandle.intValue() >= 0) {
				hCNetSDK.NET_DVR_PlayBackControl(m_lLoadHandle, HCNetSDK.NET_DVR_PLAYSTART, 0, null);
				Downloadtimer = new Timer();// 新建定时器
				Downloadtimer.schedule(new DownloadTask(), 0, 5000);// 0秒后开始响应函数
				System.out.println("视频下载成功!");
			} else {
				System.out.println("下载失败");// 按时间
				System.out.println("laste error " + hCNetSDK.NET_DVR_GetLastError());
				return;
			}
		}
	}

	/*************************************************
	 * 类: DownloadTask 类描述: 下载定时器响应函数
	 *************************************************/
	class DownloadTask extends java.util.TimerTask {
		// 定时器函数
		@Override
		public void run() {
			IntByReference nPos = new IntByReference(0);
			hCNetSDK.NET_DVR_PlayBackControl(m_lLoadHandle, HCNetSDK.NET_DVR_PLAYGETPOS, 0, nPos);
			if (nPos.getValue() > 100) {
				hCNetSDK.NET_DVR_StopGetFile(m_lLoadHandle);
				m_lLoadHandle.setValue(-1);
				Downloadtimer.cancel();
				System.out.println("由于网络原因或DVR忙,下载异常终止!");
			}
			if (nPos.getValue() == 100) {
				hCNetSDK.NET_DVR_StopGetFile(m_lLoadHandle);
				m_lLoadHandle.setValue(-1);
				Downloadtimer.cancel();
				System.out.println("按时间下载结束!");
			}
		}
	}

}

直接写个main方法运行一下,看下结果

在这里插入图片描述

这个错误29,查看官方文档,是设备操作失败,然后可能是操作不允许把

在这里插入图片描述

然后经过XXXXXXXXXX一系列的问题解决后视频就下载到本地了

第三步,就是直接移植到自己的项目中调用就可以了

有不懂的小伙伴可以留言交流下,我也是刚接触海康二次开发的小白,嘻嘻

海康摄像头视频录制保存为MP4可以直接播放 海康摄像头视频录制为MP4可以直接播放。 阅读详情

相关推荐

海康明眸门禁SDK对接实战:Java批量下发人员和人脸,我踩过的那些坑

本文详细介绍了海康明眸门禁SDK在Java环境下的对接实战经验,重点解析了批量下发人员和人脸数据时常见的技术难点与解决方案。通过环境配置、设备登录管理、批量操作优化等核心环节的深度剖析,帮助开发者规避典型错误,提升系统集成效率与稳定性。

dianzhuique8587的博客 390

关于海康威视网络摄像机二次开发问题

最近一个星期一直在研究海康威视的网络摄像机二次开发问题,纠结了很久。今天终于走通了一部分,记下来希望能够帮助到更多人。现在是用的  VS2013 + opencv 进行测试。首先推荐两篇对我帮助很大的博文:               http://blog.youkuaiyun.com/wanghuiqi2008/article/details/31410509               这篇很详细的讲解...

霹雳吧啦Wz 4万+

BXC视频行为分析系统:从架构解析到工程实践

视频行为分析是计算机视觉与边缘计算领域的关键技术,其核心原理在于通过目标检测与行为识别算法,对视频流中的特定目标(如人、车)及其动作进行自动化识别与理解。这项技术的核心价值在于将AI算法从实验室环境转化为稳定、可管理的生产级服务,解决了算法模型与实际业务系统间的集成难题。在智慧安防、工业巡检、智慧零售等场景中,它能够实现7x24小时的实时监控与智能预警。本文以BXC VideoAnalyzer这一开源视频行为分析系统为例,深入剖析其采用C++核心处理与Python算法服务解耦的混合架构设计,并详细演示如何从

ajwh64482的博客 401

基于海康威视的SDK实现二次开发

基于海康威视的SDK实现二次开发

weixin_44738214的博客 3万+

《JavaCV音视频宝典》专栏介绍和目录(JavaCV实战教程,JavaCV中文文档,JavaCV中文手册,JavaCV教程)

《JavaCV音视频开发宝典》是专注于音视频开发的宝典手册。 通过本宝典,小伙伴们可以轻松上手音视频项目开发,除了可以实现自己的直播平台、监控安防平台之外,还可以接入gb28181和海康大华等各种设备、各种嵌入式和流媒体服务都不再话下。 除此以外,针对在线教育和直播行业,还可以使用JavaCV制作自己的推流器,不需要根据OBS定制就可以实现自己的推流直播机了,由于JavaCV默认不再包含gpl v2许可协议的代码库,因此也不用担心违反许可协议的风险。 再者,对于各种开发板和树莓派等嵌入式的开发者,也可以轻松

eguid音视频方向博客,分享经过实践检验的硬核音视频技术。FFmpeg、openCV和JavaCV音视频和图像处理系列教程发布十周年,众多开发者的严格验证。欢迎关注,一起交流探索学习最新音视频和图像处理技术 1万+

Spring Boot视频采集系统:支持华为等品牌IPC录像 + SFTP自动上传备份

一套开箱即用的Java后端服务,基于Spring Boot和MyBatis构建,通过ONVIF协议对接主流网络摄像头(已实测兼容华为IPC设备),支持实时拉流、本地分段录制MP4视频文件;内置SFTP客户端,可将录完的视频加密上传至Linux远程服务器,支持自定义存储路径、按时间/设备命名文件、断点续传、上传失败自动重试及告警通知;项目含完整Maven配置(pom.xml)、可直接运行的源码结构、单元测试目录、IDEA工程配置及脚手架启动脚本(mvnw),适用于安防监控集成、边缘侧视频采集与远程归档等实际部

sky77的博客 293

海康SDK方式对接摄像头

1知识相关: OpenAPI:对外开放的接口 Http Methodhttp:请求的方法,常用的方法有GET/POST/PUT/DELETE等请求 Path:http请求路径,指域名/IP(端口号)之后的部分,如请求地址为"www.example.com/artemis/api",则path指"/artemis/api" appKey\appSecret:一对appKey/appSecret用于标识一个调用方,appSecret作为密钥参与签名计算 AK:AK(Access Key I

Temp_1998_H的博客 8236

PS流转h264裸流的MP4~java代码实现

ps流视频转换为h264裸流java代码实现

Gavin 660

VUE3+javaCV实现长时间录制视频

1、传统html提供了对video组件的媒体流captureStream方法,vue3使用的ts所适配的HTMLELEMNT中的还没有提供直接对video组件提取媒体流的方法。2、将video重绘到canvas,HTMLELEMENT提供了对canvas的媒体流获取的方法,但是只适用于短时间录制。1、使用HTMLVideoElement的caputure捕捉video组件中正在播放的视频流。弊端:将video绘制到canvas,然后捕捉canvas的媒体流,适用于秒级的录制。

2201_75875170的博客 680

JAVA实现摄像头的录像功能

基于JMF的JAVA控制摄像头录像功能,并可以保存录像到指定路径中。

c#调用海康sdk实现查看视频,回放,下载

c#调用海康sdk实现查看视频,回放,下载

gb28181视频平台

无论您面对的是安防监控、智慧城市、园区管理还是应急指挥场景,GBHub 都能提供从设备接入、实时播放、历史回放到云端录制、智能分析的完整视频服务能力,让复杂的视频联网变得简单高效。提供在线演示平台(https://mgr.automate.org.cn),用户名 admin,密码 admin123,可体验界面和模拟数据。支持作为下级或上级平台,自动同步设备目录和状态。完整支持 GB/T 28181-2016 及 2022 标准,兼容海康、大华、宇视等主流厂商设备,自动适配 UDP/TCP 传输。

WW7899的博客 458

3- 回放下载_海康回放下载_海康威视摄像机录像回放下载_海康回放下载_

实现海康威视相机录像内容的回放和下载保存功能

三小时从零搭建:wvp-GB28181-pro国标视频平台完全部署指南

你是否正在为视频监控系统碎片化而烦恼?不同品牌的摄像头各自为政,NVR系统互不兼容,想要统一管理却无从下手。或许你尝试过各种方案,但要么技术门槛太高,要么功能过于简陋。今天,我要向你介绍一个真正能解决这些问题的开源解决方案——wvp-GB28181-pro。 这个基于国家标准GB28181-2016的视频管理平台,不仅支持海康、大华、宇视等主流品牌设备,还能将普通摄像头、直播流转化为国标信号,实

gitblog_00336的博客 1015

机器学习项目(四)疫情期间网民情绪识别 (一)

疫情期间网民情绪识别 赛题背景 2019新型冠状病毒(2019-nCoV)感染的肺炎疫情发生对人们生活生产的方方面面产生了重要影响,并引发国内舆论的广泛关注,众多网民参与疫情相关话题的讨论。为了帮助政府掌握真实社会舆论情况,科学高效地做好防控宣传和舆情引导工作,本赛题针对疫情相关话题开展网民情绪识别的任务。 数据介绍 训练集 10万条 无标记样本90万条 测试集1万条 数据集依据与“新冠肺炎”相关...

qq_33357094的博客 8970

SAP 财务快速记账之--科目分配模型(Account assignment model )

SAP FICO 运维解决方案

lijinbao171022的博客 1764

终结碎片化:基于GB28181/RTSP协议网关与边缘协同的企业级AI视频平台架构深度解析(附源码交付)

摘要: YiheCode Server 通过协议网关架构解决安防行业设备接入的碎片化问题,将海康、大华等私有协议及GB28181统一转译为标准RTMP/FLV流,实现品牌解耦。其核心采用适配器模式,结合ZLMediaKit流媒体集群与边缘协同机制,支持按需拉流和智能分发,显著降低带宽与服务器压力。平台提供源码交付,封装复杂协议交互(如SIP信令),并支持API驱动开发和算法热插拔,减少95%的重复开发成本。此外,它还集成了算法商城、精细化告警管理及人流量统计等企业级功能,支持OEM贴牌,助力集成商快速私有化

tt120326的博客 483

如何使用JMeter进行大模型的压力测试?

使用JMeter进行大模型的压力测试,核心是通过模拟高并发请求,测试大模型在极限负载下的性能表现(如响应时间、吞吐量、错误率、资源瓶颈等)。通过以上步骤,可系统性评估大模型在高压下的性能极限,为优化模型(如量化、蒸馏)、扩容硬件(增加GPU)或调整接口限流策略提供数据依据。)、请求方式(POST)、认证方式(API Key放在Header)、请求参数(作用:避免瞬间高压压垮系统,更精准找到瓶颈点。等)、响应格式(同步/流式)。需获取:API地址(如。通过CSV文件引入不同。

alankuo的专栏 787

RGBMoCap PEAR实时动捕:用摄像头实现低延迟动作预览,实验性功能详解

RGBMoCap 内置的实验性 PEAR 实时动捕功能,让你用普通摄像头或视频直接驱动一个固定长度骨骼的人体预览:点击 **Start Live Tracking**,即可低延迟看到身体与手指骨骼的实时动作。本文带你了解它的能力边界、模型准备、多机位自动对齐和实测性能,快速上手这款 Windows 本地视频动捕工具的实时预览模式。 [![RGBMoCap 视频动捕工作区,左侧显示人物检测框,右侧

gitblog_00694的博客 785

iOS In-App Purchase 自动续订订阅完整实现指南

本文摘要: 自动续订订阅是iOS应用变现的核心模式,适用于流媒体、云存储等持续服务场景。文章系统讲解了从配置到实现的完整流程:首先对比各类订阅模式特点,解析订阅生命周期和关键术语;然后详细说明App Store Connect中的订阅组创建、产品配置和服务器通知设置;最后展示客户端StoreKit实现方案,包括产品标识符定义、订阅管理器封装和支付队列观察机制。全文提供可落地的代码示例和技术细节,帮助开发者掌握自动续订订阅的全链路实现。

Sheffi 1755

MaxDEA如何计算超效率DEA

MaxDEA如何计算超效率DEA第一步,导入数据,设置输出和输出,点击OK;第二步,运行模型; 本文计算的是超效率DEA-BCC。 第一步,导入数据,设置输出和输出,点击OK; 第二步,运行模型; 在distance选项框中选择Radial:CCR(1978);BCC(1984)。 在Orientation中选择Non-oriented。其中,Input-oriented是投入最小;Outp...

王樰沫 1万+

5分钟搭建专业级国标视频监控平台:wvp-GB28181-pro完整部署教程

你是否正在寻找一个能够统一接入海康、大华、宇视等主流监控设备的解决方案?是否被复杂的国标协议配置搞得焦头烂额?今天我要为你介绍一个开箱即用的国标视频监控平台——wvp-GB28181-pro,它能让你在5分钟内搭建起专业的视频监控系统!😊 wvp-GB28181-pro是基于GB/T 28181-2016国家标准协议的开源视频平台,同时支持部标808和1078协议。无论你是安防工程师、系统集成

gitblog_00241的博客 688

【Collibra 驱动 IPD 数据血缘治理】:三层图谱分层展示体系与全链路追踪的技术业务实践

(应用级/数据级/字段级)是理解复杂数据流动的核心手段。其价值不仅体现在可视化的直观性,更在于通过。技术保障血缘不可篡改性,进一步提升IPD数据治理的可靠性。,解决了跨层级血缘分析的性能与可用性矛盾。数据血缘图谱要素定义(字节跳动/腾讯云/信安标委)实现对IPD数据的精准追踪,而数据血缘图谱的。分层交互设计标准(智慧城市数据中台规范)Collibra技术文档(2024)字段级血缘的挑战与解决路径。自动优化血缘路径,并深化。字段级血缘技术实现方案。Collibra通过。图数据库性能优化原理。

百态·数智思维 | 聚焦大数据、量化与未来AI 1242

使用java执行ffmpeg命令进行推流操作

视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。 ffmpeg视频采集功能非常强大,不仅可以采集视频采集卡或USB摄像头的图像,还可以进行屏幕录制,同时还支持以RT...

weixin_33836223的博客 892

SVPWM分析、各个扇区详细计算以及Matlab仿真

SVPWM分析以及各个扇区详细计算以及Matlab仿真说明目的两电平逆变器拓扑空间矢量扇区判断扇区内如何发波?矢量作用时间计算矢量切换时间的计算Simulink仿真/基于Matlab-R2014a版本 说明 第一次发文章,不太会用Markdown,word编辑的公式复制过来有些是乱码,因此都贴图了。 另外,本文公式和图片比较多,编辑工作量比较大,比较辛苦,转载的话,请注明出处,谢谢。 目的 由于在...

michaelf的博客 12万+

一文搞懂自适应激光控制技术,开启光学新时代

自适应激光控制技术作为现代光学领域的关键技术,以其独特的原理和高效的工作机制,在科研、工业等众多领域展现出了巨大的应用价值。通过对激光波前的实时测量与补偿,它成功克服了激光在传输和应用过程中面临的诸多挑战,显著提升了激光的光束质量和应用效果。在科研领域,它助力天文观测突破大气湍流的限制,让我们得以更清晰地窥探宇宙的奥秘;在激光核聚变研究中,为实现高效的核聚变反应提供了关键支持,为解决能源问题带来了新的希望。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2529
上一篇: Mybatis 动态insert语句
下一篇: SpringBoot集成JWT实现token验证(摘自博客园)
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值