新版EasyGBS更新快照后刷新出现快照数据库内容丢失问题调整
我们的视频流媒体服务器诸如支持国标协议的EasyGBS、支持RTSP协议的EasyNVR流媒体平台,这些平台在做研发的时候,我们都做了快照界面,让用户观看的界面更加直观。
由于最近EasyGBS更新了新版内核,我们在对新版EasyGBS做通道测试时,发现通道刷新之后快照数据库内容字段就丢失了。
原本的快照内容显示正常:
刷新之后快照丢失:
这里我们分析应该是刷新时未对快照进行查询,从而导致通道更新的时候快照重新开始记录,但是快照的更新需要等待1分钟,因此刷新通道的前一分钟并无快照生成。
添加如下代码,当用户更新通道之后,去查询此时通道的快照数据是否有数据,如果要有的话,再去读取本地是否有这个文件,要是都符合条件,那就快照字段不更新,否则就更新。
if channel.Longitude == 0 && channel.Latitude == 0 {
err = tx.Omit("ondemand", "record", "record_plan", "custom_id", "gbs_longitude", "gbs_latitude", "record_plan_switch", "audio", "cdn", "snap").Save(channel).Error
} else {
err = tx.Omit("ondemand", "record", "record_plan", "custom_id", "record_plan_switch", "audio", "cdn", "snap").Save(channel).Error
}
if err != nil {
log.Println("save channel error ", err.Error())
tx.Rollback()
return
}
检查快照更新,刷新通道后快照依然存在。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
2020-09-14 【解决方案】国家邮政局如何建立一套基于GB28181协议国标视频监控系统?
2020-09-14 海康硬盘录像机NVR如何接到国标GB28181协议国标视频云服务平台EasyGBS
2020-09-14 【解决方案】通过国标GB28181协议EasyGBS视频平台搭建的环境检测视频可视化监控方案
2020-09-14 关于国标GB28181流媒体协议视频平台EasyGBS设备无法接入平台的问题排查