国标GB28181协议视频平台EasyGBS的云端录像能够永久保存吗?会不会丢失?

国标GB28181协议是由公安部提出的国家统一标准视频流传输协议,通过流媒体服务器表现的话,就是国标流媒体视频平台EasyGBS。EasyGBS的存储方式包括设备存储和云端存储,为了能够随时随地调取视频流进行播放,很多用户都会选择云端存储。

EasyGBS的云端录像会丢失吗

问题复现

我们的官网一直由EasyGBS的演示平台让大家参考,我们研发调用演示平台的云端录像时,发现原本储存在云端的视频录像丢失不见了。这里我们来简单复现一下这个问题。

接入一个正在使用的摄像头,可以看到这个设备录像在开始的时候是存在的,并且在一个小时后能够正常播放。

当这个通道离线后,我们点击删除这个通道:

这个时候再来看设备的云端录像,就会发现这个设备对应的云端录像丢失了。

问题分析

起初我以为是由于本地的录像文件夹文件被删除了,才导致录像丢失,但是到文件夹路径去看,发现视频文件都还在,因此可以排除我最开始的猜测。

然后开始排查代码,录像列表在扫描本地文件夹的时候,当设备通道离线被删除,列表会剔除这些设备的通道录像,所以前端页面不显示。

解决方案

读取本地录像列表的时候如果通道被删除了,就是用自定义的名字和状态,并且录像也不剔除

for _, v := range results {
				if v.DeviceId == fs[0] && v.ChannelId == fs[1] {
					is_cunzai = true
				}
			}
			if is_cunzai {
				ch := models.GetChannel(fs[1], fs[0])
				//if ch == nil {
				//	continue
				//}
				dv := models.GetDevice(fs[0])
				name := "-"
				status := "3" //1 在线 2 离线 3 已删除
				devicename := "-"
				if dv != nil {
					devicename = dv.Name
				}
				if ch != nil {
					name = ch.Name
					if ch.Online() {
						status = "1"
					} else {
						status = "2"
					}
				}

显示效果:

一般来讲,我们EasyGBS中云端录像的保存较为完善,若非操作不当或者刻意删除,云端录像不会无故丢失。

posted on 2020-08-03 13:49  EasyGBS  阅读(515)  评论(0编辑  收藏  举报