EasyCVR如何添加流量统计功能?

225 阅读1分钟

EasyCVR视频协议融合平台不仅支持常规协议的接入,我们还拓展了海康SDK、大华SDK、Ehome等私有协议。如果前端设备协议不同且数量较多,则可以通过EasyCVR平台来对所有视频通道做整合和统一管理,同时EasyCVR也支持与其他支持GB28181协议的平台级联。

在最近的开发中,我们对EasyCVR的功能也进行了优化,添加了流量统计功能,该功能需要统计每个通道以及设备接收的流量和发送的流量。

添加如下代码,在请求播放接口的时候,从流媒体中获取当前播放的信息,从中筛选出接收流量以及发送流量,然后将其存入到数据库中。前端点击查询的时候,按时按天按月的返回给前端。

select {
case <-ticker.C:
       module := utils.Conf().Section("base_config")
       trafficSumDay := module.Key("traffic_sum_day").MustInt(1)
       err := cvrservice.GetDeviceService().DeleteStreamLog(time.Now().Add(time.Hour * 24 * -time.Duration(trafficSumDay)))
       if err != nil {
              log.Println("err,", err.Error())
              time.Sleep(time.Second * 3)
              continue
       }
       groups, err := mediaserver.GetLiveSessions()
       if err != nil {
              log.Println("err,", err.Error())
              time.Sleep(time.Second * 3)
              continue
       }

添加过后,前端点击播放展示如下效果,能够正确返回播放流地址:

同时我们也可以直观看出流量的变化。