视频智能分析平台国标GB28181协议国标流媒体服务器EasyGBS级联多个平台无法播放问题修复
国标GB28181相对于国际上的安防协议标如ONVIF最大的优势是实现了平台级联方式,级联方式为中国政府机关和平安城市、智慧城市等概要非常贴切的应用,平台之间的级联实现了不同平台之间的互联互通,实现了有效的视频资源整合。
很多用户都会选择TSINGSEE青犀视频开发的国标平台EasyGBS作为能力层搭建视频平台,其中级联功能就使用非常频繁,EasyGBS不仅可以和其他第三方平台进行对接,也可以和TISNGSEE青犀视频其他云边端架构平台级联。
在EasyGBS的级联使用中出现一个问题,即同一个通道向上级级联多个平台时,无法在两个平台播放。正常来说,级联可以让多个平台同时获取到被级联平台的能力,因此该问题我们需要进行排查解决。
经过排查代码发现,同一个通道在配置推流的级联选项上是单节点推送的,所以导致无法在两个平台播放。
case "UDP":
cascade_udp, err := net.ResolveUDPAddr("udp", server.Cascade)
if err != nil {
fmt.Println("转发地址解析失败:", err)
return
}
_, err = server.DataConn.WriteToUDP(rtpBuf, cascade_udp)
if err != nil {
fmt.Println("转发失败:", err)
}
if !server.IsLiveStream {
continue
}
}
现在我们需要对代码进行修改,将每个设备的向上级推流的字段改成结构体模式,然后推送流数据的时候进行循环推送.
for _, v := range server.CascadeServer {
cascade_udp, err := net.ResolveUDPAddr("udp", v.UDPAddr)
if err != nil {
fmt.Println("转发地址解析失败:", err)
return
}
_, err = server.DataConn.WriteToUDP(rtpBuf, cascade_udp)
if err != nil {
fmt.Println("转发失败:", err)
}
if !server.IsLiveStream {
continue
}
}
再次播放测试即正常:
EasyGBS视频智能分析平台在交通、安防等场景下具备很好的适应性,而今年TSINGSEE青犀视频研发团队刚推出的国标推流平台EasyGBD让国标协议的视频推流变得更加便捷,关于EasyGBS和EasyGBD的使用,欢迎大家联系我们咨询了解。
【推荐】国内首个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攻略 —— 某应届生求职总结