RTSP协议安防视频平台EasyNVR级联到GB28181协议视频平台EasyGBS,如何自定义设备通道号?
EasyGBS可以通过GB28181协议与其他第三方平台进行级联,由于这一优势的存在,很多项目团队都会选择EasyGBS来进行项目监控方案的搭建,而目前在产品迭代升级中,我们将RTSP安防视频可视化平台EasyNVR也支持向上级国标平台级联。
之前EasyNVR平台级联到EasyGBS国标平台之后,通道号都是按照一定的规则自动生成的,如下图:
EasyNVR的通道1对应的是34020000001360000101;通道8对应的是34020000001360000108
那么当我们要修改通道编号时应该如何设置?EasyNVR通道国标协议级联到EasyGBS上,EasyGBS的通道号是根据EasyNVR自己构建上报给EasyGBS的,因此我们只需要在EasyNVR上报通道给EasyGBS的地方修改即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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传递的通道及其信息,比如是否级联到国标已经自定义的通道号。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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协议的前端设备,我们均为大家提供了试用版本测试使用,欢迎大家测试。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结