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

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

EasyGBS架构2.5D.png

EasyGBS的云端录像会丢失吗

问题复现

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

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

1062.png

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

1063.png

1064.png

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

问题分析

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

1065.png

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

解决方案

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

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"
					}
				}

显示效果:

1066.png

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值