EasyNVR|如何实现RTSP协议视频智能流媒体服务平台EasyNVR录像计划?
_本文原题:如何实现RTSP协议视频智能流媒体服务平台EasyNVR录像计划?
之前的博文中我们和大家讲过EasyNVR的录像计划的实现方式 , 大家可以简单了解一下操作方式:EasyNVR边缘计算网关录像计划功能操作介绍 。 关于EasyNVR录像计划的实现 , TSINGSEE青犀视频的研发人员也耗费了不少心思 , 下面我们就讲一下是是如何实现的 。
本文插图
EasyNVR录像计划 , 其实就是在EasyNVR先为通道配置好录像计划 , 然后该通道就会以录像计划中的计划设置来录像 。 例如:通道1只开启每天的下午1点到2点录像 , 那么通道1就只会在每天的下午1点到2点有录像 , 不会像现在一旦开启录像 , 就是直接录像一整天 。
这样就可以达到节省磁盘空间的效果 , 录像也更灵活 。 下面是实现代码:
func checkRecordPlan() gin.HandlerFunc {return func(c *gin.Context) {c.Request.ParseForm()log.Printf("----------form:%s", c.Request.Form)app := c.Request.Form.Get("app")call := c.Request.Form.Get("call")name := c.Request.Form.Get("name")channelId, _ := strconv.Atoi(name[7:])if app == "record" && (call == "update_publish" || call == "publish") {var camera models.Cameramodels.DB.Model(models.Camera{}).Where("id = ?", channelId).First(&camera)recordDay, _ := strconv.Atoi(camera.Reserve3)if recordDay != 0 {log.Printf("----------RecordAllPlan:%s", camera.RecordAllPlan)if camera.RecordPlanEnable == 0 && camera.RecordAllPlan != "" {if !checkTimeByRecordPlan(camera.RecordAllPlan) {channelInfo := channels.GetChannel(uint(channelId))channelInfo.StopRecordPusher()c.AbortWithStatus(http.StatusBadRequest)return}}//{"Monday":"","Tuesday":"15:50:00-16:00:00","Wednesday":"","Thursday":"","Friday":"","Saturday":"","Sunday":""}if camera.RecordPlanEnable == 1 && camera.RecordPlan != "" {if !checkTimeByRecordPlan(camera.RecordPlan) {channelInfo := channels.GetChannel(uint(channelId))channelInfo.StopRecordPusher()c.AbortWithStatus(http.StatusBadRequest)return}}}}c.Next()}}func CheckTimeUnix(timeArr []string) bool {if timeArr[0] == "" {return false}stampStart, _ := time.ParseInLocation("2006-01-02 15:04:05", time.Now().Format("2006-01-02")+" "+timeArr[0], time.Local)stampEnd, _ := time.ParseInLocation("2006-01-02 15:04:05", time.Now().Format("2006-01-02")+" "+timeArr[1], time.Local)stampNow := time.Now().Unix()if stampNow >= stampStart.Unix() && stampNow <= stampEnd.Unix() {return true}return false}其实就是靠一个字段来判断何时可以录像 。
本文插图
举个例子:
{“Monday”:"",“Tuesday”:“15:00:00-16:00:00”,“Wednesday”:"",“Thursday”:"",“Friday”:"",“Saturday”:"",“Sunday”:""}
比如上面的这一个字符串 , 意思就是只会在星期2的下午3点到下午4点录像 , 其他时间段不录像 。
本文插图
【EasyNVR|如何实现RTSP协议视频智能流媒体服务平台EasyNVR录像计划?】如果大家还想了解EasyNVR更多相关内容 , 可以自行下载测试 , EasyNVR测试版本均提供API接口可进行二次开发 , 与正式版本无异 , 如若还有视频相关解决方案上的疑问 , 欢迎联系我们 。
推荐阅读
- 小龙虾|三农探析:池塘养殖小龙虾如何高产?高产养殖技术全解析
- 菜籽饼|菜籽饼被誉为果园之宝,但用错了烧苗烧根,果农如何来使用?
- 水产养殖|生态水产养殖如何提高鱼病的预防工作?大疆渔业这样建议
- 瘦肉精|如何避开 315曝光的瘦肉精问题肉?
- 美国_军事|那个帮美国破解北斗卫星的清华才女高杏欣,13年过去了,近况如何
- 猎鹰9号|马斯克的猎鹰9号火箭刷新全球回收复用纪录,中国实现突破还要多久
- 蜂群|春季控制蜂群分蜂热,早造脾,早育王,才能实现人工分蜂
- 花菜有人焯水,有人直接下锅炒,都错了,看饭店大厨是如何做的
- 如何晚上发面早上蒸?教你用冷藏发酵,一学就会,馒头包子特好吃
- 急性肠胃炎|急性肠胃炎是如何“起哄”的?这4个“不舒服”一出现,赶紧就医
