SkeyeVSS综合安防视频云服之监控录像回放下载功能实现
2023-06-13 09:18:17 时间
SkeyeVSS综合安防视频云服务通过接入SkeyeRMS录像服务器实现对系统里的摄像机等设备录像,通过配置录像模板,对所配置的录像时间段产生的视频数据进行存储,方便下载管理。
1.判断当前设备是否有录像数据产生:如图:上面的图标表示设备已经配置了录像计划,点击图标加载对应设备的录像数据列表。
2.展示录像列表
(1)根据时间查询(开始与结束时间之间的录像数据)
let startTime = moment(this.listQuery.date).format('YYYYMMDDT000000');
let endTime = moment(this.listQuery.date).format('YYYYMMDDT235959');
(2)展示列表 如图:(包含设备名称、日期、时间、每段录像时长)
3.录像下载列表 (将过长的录像进行拆分)
当一段录像数据的时长超过30分钟,数据就可能达到几百上千兆,将采用分段下载,这样可以减小单个录像数据体积,避免下载等待时间过长,将每段录像时长控制在30分钟以内,下载的等待时间稍短。
let startTime = moment.duration(row.time.split('-')[0]).asMilliseconds()
let endTime = moment.duration(row.time.split('-')[1]).asMilliseconds()
let total = moment.duration(endTime - startTime).asMilliseconds()
let interval = 30 * 60 * 1000
let paragraph = Math.floor(total / interval)
let moreThan = total % interval
let arr = []
for (let i = 0; i < paragraph; i++) {
arr.push({
name: row.name,
date: row.date,
indexCode: row.indexCode,
time: row.time,
duration: moment.utc(interval).format('HH:mm:ss'),
start: moment(Number(moment(row.date).format('x')) + startTime + i * interval).format('HH:mm:ss'),
end: moment(Number(moment(row.date).format('x')) + startTime + i * interval + interval).format('HH:mm:ss'),
startstamp: Number(moment(row.date).format('x')) + startTime + i * interval,
endstamp: Number(moment(row.date).format('x')) + startTime + i * interval + interval,
})
}
if (moreThan) {
arr.push({
name: row.name,
date: row.date,
indexCode: row.indexCode,
time: row.time,
duration: moment.utc(moreThan).format('HH:mm:ss'),
start: moment(Number(moment(row.date).format('x')) + startTime + paragraph * interval).format('HH:mm:ss'),
end: moment(Number(moment(row.date).format('x')) + startTime + paragraph * interval + moreThan).format('HH:mm:ss'),
startstamp: Number(moment(row.date).format('x')) + startTime + paragraph * interval,
endstamp: Number(moment(row.date).format('x')) + startTime + paragraph * interval + moreThan,
})
}
4.录像下载
通过传入下载对应参数 (名称、开始时间、结束时间)
let url = `${location.protocol}//${serverIp}:${serverPort}/DownloadRecord_${row.name}_${startTime}.ts?indexCode=${row.indexCode}&startTime=${startTime}&endTime=${endTime}`
downloadFile(url, name) {
//创建下载
const doma = document.createElement('a');
document.body.append(doma)
doma.href = url;
doma.download = name
doma.rel = 'noopener noreferrer'
doma.click();
document.body.removeChild(doma)
},
相关文章
- 分布式云场景下的多集群监控方案最佳实践
- prometheus监控日志告警_undo terminal monitor
- 低调又实用的安卓性能监控工具在这里!!!
- Zabbix分布式监控系统从理论到实践
- 17-RabbitMQ高级特性-日志与监控
- 某小区监控系统项目施工组织方案,文末下载word版
- NetWorker Pro Mac版-网络监控工具下载
- Spring Cloud Security监控示例-安全度量指标示例
- 监控和剖析数据库操作 — P6Spy、SQL Profiler、IronTrack SQL(网络下载+我的修订)详解数据库
- Zabbix监控(十二):自动监控Linux端口
- 10min 手写一个内存监控系统
- Linux性能监控工具介绍及使用指南(监控linux性能工具)