【开发记录】国标GB28181协议国标视频平台EasyGBS云端录像批量设置功能开发
目前EasyGBS云端录像功能都是单个通道分开设置,在通道数多的情况的下,操作非常繁琐不便,因此我们决定对该处功能进行升级调整。(关于EasyGBS云端录像的其他内容,可以点击如何修改云端录像的存储位置、云端录像与按需直播是否可以同时开启、国标通道录像云端存储查询功能。)
在进行了不同形式的调整测试之后,我们打算添加批量设置云端录像的功能,并且可以对录像的时间段进行控制。
添加如下批量设置录像计划代码:
for _, v := range bodyMap {
device := models.GetDevice(v.GetString("DeviceId"))
if device == nil {
c.AbortWithStatusJSON(400, fmt.Sprintf("device[%s] not found", v.GetString("DeviceId")))
return
}
channelInfo := models.GetChannel(v.GetString("ChannelId"), v.GetString("DeviceId"))
if channelInfo == nil {
c.AbortWithStatusJSON(400, fmt.Sprintf("channel[%s] not found", v.GetString("ChannelId")))
return
}
var updateMap = map[string]interface{}{"record": recordDay,
"record_plan_switch": v.GetBool("RecordPlanSwitch")} //, "record_plan": string(weekJson.ToJSON())
if v.GetString("RecordPlan") != "" {
recordPlan := v.GetString("RecordPlan")
recordPlanmap, err := values.NewValuesFromJSON([]byte(recordPlan))
if err != nil {
c.AbortWithStatusJSON(400, err.Error())
return
}
//判断录像计划数据中每日的字段是否存在
if !checkMap(recordPlanmap) {
c.AbortWithStatusJSON(400, errors.New("请传入有效的数据"))
}
updateMap["record_plan"] = recordPlan
}
db.SQLite.Model(models.Channel{}).Where("id = ? and device_id=?",
修改代码后,EasyGBS云端录像可以配合前端页面对多个通道进行批量设置录像计划:
用户在界面点击批量设置过后,录像时间能够正常的按照设置的录像时间段来进行录像,最终达到要求。
EasyGBS视频平台已经运用到多个不同的领域及场景,比如:应急管理综合应用平台、安保行业日常巡查视频监控系统,大家有兴趣可以去了解一下。同时,EasyGBS平台提供测试版本,欢迎大家的试用。