RTSP协议安防视频平台EasyNVR级联到GB28181协议视频平台EasyGBS,如何自定义设备通道号?

EasyGBS可以通过GB28181协议与其他第三方平台进行级联,由于这一优势的存在,很多项目团队都会选择EasyGBS来进行项目监控方案的搭建,而目前在产品迭代升级中,我们将RTSP安防视频可视化平台EasyNVR也支持向上级国标平台级联。

之前EasyNVR平台级联到EasyGBS国标平台之后,通道号都是按照一定的规则自动生成的,如下图:

EasyNVR的通道1对应的是34020000001360000101;通道8对应的是34020000001360000108

那么当我们要修改通道编号时应该如何设置?EasyNVR通道国标协议级联到EasyGBS上,EasyGBS的通道号是根据EasyNVR自己构建上报给EasyGBS的,因此我们只需要在EasyNVR上报通道给EasyGBS的地方修改即可。

case "catalog":
   //上传通道
   _ = c.Req.MakeResponse().SendByTransport(c.Transport)
 
   gbsChannels := channels.GetGbsChannels()
   err := c.Client.MakeCataLogRequest(serial, c.Client.Cascade.Realm, sn, gbsChannels)
   if err != nil {
      log.Printf("make catalog request failed, %v", err)
      return
   }
   //log.Printf("级联上传通道: make catalog request caremas: %v", caremas)
 
   c.Client.DevCache.Set(fmt.Sprintf("cascade_channels@%d", c.Client.Cascade), gbsChannels, -1)

通过以上函数,EasyGBS就可以获取到用户想要给EasyGBS传递的通道及其信息,比如是否级联到国标已经自定义的通道号。

func GetGbsChannels() []*ChannelInfo {
   channelsLock.RLock()
   defer channelsLock.RUnlock()
   var cameras []models.Camera
   models.DB.Model(models.Camera{}).Where("gbs_enable = 1").Find(&cameras)
   ret := make([]*ChannelInfo, 0, len(channels))
   for _, channel := range channels {
      for i := range cameras {
         if channel.Channel == cameras[i].ID {
            channel.GbsId = cameras[i].GbsId
            ret = append(ret, channel)
         }
      }
   }
   return ret
}

  

我们在EasyNVR的通道配置一下级联国标相关信息。

EasyNVR通道1的国标级联配置是开启的,且配置了级联到EasyGBS上报给EasyGBS的通道是34020000001360000101,这样我们在EasyGBS上看到的通道号就34020000001360000101了。

我们先我们修改一下EasyNVR通道1不启用国标级联

EasyGBS这边就看不到EasyNVR的通道1对应的通道了。随后修改一下EasyNVR通道1对应的国标级联通道号为34020000001361111101即可。

EasyNVR和EasyGBS都是TSINGSEE青犀视频云边端架构产品中的视频平台,EasyGBS支持GB28181协议的前端设备,EasyNVR支持RTSP协议的前端设备,我们均为大家提供了试用版本测试使用,欢迎大家测试。

posted on 2020-11-05 09:43  EasyGBS  阅读(163)  评论(0编辑  收藏  举报