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协议的前端设备,我们均为大家提供了试用版本测试使用,欢迎大家测试。