通过海康sdk实现指定时间段内的录像文件下载

个人博客:banmajio’s blog

海康sdk二次开发系列文章
海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP)
海康sdk进行历史回放时,码流数据回调过快问题的解决方法
海康sdk项目(java)部署Linux环境相关问题总结
海康sdk部署Linux环境下无法播放子码流的问题
海康sdk项目部署Linux系统时出现java.lang.UnstisfiedLinkError:jnidispatch(xxx)not found in resource path错误
通过海康sdk捕获码流数据实现抓图功能
海康sdk查询指定时间段内NVR的录像文件列表

实现方式

录像文件下载实现流程

根据海康sdk文档描述的流程来实现下载功能:
在这里插入图片描述

实现方式

  1. 初始化sdk和用户注册设备流程自行事项,本篇文章暂时略过该过程。
  2. 调用录像文件查找接口NET_DVR_FindFile,判断该时间段内是否存在录像。
  3. 调用NET_DVR_FindNextFile_V30按时间逐个获取查找到的文件信息。
  4. 调用NET_DVR_FindClose_V30关闭文件查找,释放资源。
  5. 组织下载信息结构体NET_DVR_PLAYCOND在这里插入图片描述
  6. 检测下载路径是否存在,如果不存在则创建下载路径。
  7. 调用NET_DVR_GetFileByTime_V40按时间下载录像文件。
  8. 调用HCNetSDK.INSTANCE.NET_DVR_PlayBackControl(net_DVR_GetFileByTime_V40, HCNetSDK.NET_DVR_PLAYSTART, 0, null);控制录像下载状态 开始下载
  9. 提供获取录像文件下载进度的接口。
下载录像文件接口
/**
	 * @Title: download
	 * @Description: 下载指定时间录像文件
	 * @param pojo
	 * @return: JSONObject
	 **/
	@PostMapping(value = "/download")
	public JSONObject download(@RequestBody @Valid CameraPojo pojo) {
   
		JSONObject json = new JSONObject(true);
		// 自行调用注册设备的接口获取注册句柄
		HCLoginSDK login = null;
		
		// 将接口传入的yyyy-MM-dd HH:mm:ss格式的时间转为sdk接口时间的结构体
		NET_DVR_TIME lpStartTime = Utils.getNvrTime(pojo.getStarttime());
		NET_DVR_TIME lpStopTime = Utils.getNvrTime(pojo.getEndtime());

		// 查找录像文件
		NativeLong lFindFileHandle = HCNetSDK.INSTANCE.NET_DVR_FindFile(login.getLUserID(),
				new NativeLong(Integer.valueOf(pojo.getChannel())), 0, lpStartTime, lpStopTime);
		if (lFindFileHandle
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

banmajio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值