EasyGBS能夠經過GB28181協議與其餘第三方平臺進行級聯,因爲這一優點的存在,不少項目團隊都會選擇EasyGBS來進行項目監控方案的搭建,而目前在產品迭代升級中,咱們將RTSP安防視頻可視化平臺EasyNVR也支持向上級國標平臺級聯。前端
以前EasyNVR平臺級聯到EasyGBS國標平臺以後,通道號都是按照必定的規則自動生成的,以下圖:微信
EasyNVR的通道1對應的是34020000001360000101;通道8對應的是34020000001360000108架構
那麼當咱們要修改通道編號時應該如何設置?EasyNVR通道國標協議級聯到EasyGBS上,EasyGBS的通道號是根據EasyNVR本身構建上報給EasyGBS的,所以咱們只須要在EasyNVR上報通道給EasyGBS的地方修改便可。app
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了。code
咱們先咱們修改一下EasyNVR通道1不啓用國標級聯視頻
EasyGBS這邊就看不到EasyNVR的通道1對應的通道了。隨後修改一下EasyNVR通道1對應的國標級聯通道號爲34020000001361111101便可。blog
EasyNVR和EasyGBS都是TSINGSEE青犀視頻雲邊端架構產品中的視頻平臺,EasyGBS支持GB28181協議的前端設備,EasyNVR支持RTSP協議的前端設備,咱們均爲你們提供了試用版本測試使用,歡迎你們測試。rem