欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

国标GB28181协议国标视频平台EasyGBS云端录像批量设置功能开发

程序员文章站 2022-03-17 14:13:14
...

目前EasyGBS云端录像功能都是单个通道分开设置,在通道数多的情况的下,操作非常繁琐不便,因此我们决定对该处功能进行升级调整。(关于EasyGBS云端录像的其他内容,可以点击如何修改云端录像的存储位置云端录像与按需直播是否可以同时开启国标通道录像云端存储查询功能。)

国标GB28181协议国标视频平台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云端录像可以配合前端页面对多个通道进行批量设置录像计划:

国标GB28181协议国标视频平台EasyGBS云端录像批量设置功能开发

国标GB28181协议国标视频平台EasyGBS云端录像批量设置功能开发

用户在界面点击批量设置过后,录像时间能够正常的按照设置的录像时间段来进行录像,最终达到要求。

国标GB28181协议国标视频平台EasyGBS云端录像批量设置功能开发

EasyGBS视频平台已经运用到多个不同的领域及场景,比如:应急管理综合应用平台安保行业日常巡查视频监控系统,大家有兴趣可以去了解一下。同时,EasyGBS平台提供测试版本,欢迎大家的试用。