国标GB28181协议流媒体视频平台EasyGBS如何将内网的摄像机视频推送到公网?
最近关注国标GB28181协议的用户比较多,有的用户对GB28181出内网的问题不太了解,那么本文我们就讲讲如何通过GB28181协议将内网的摄像机视频推送到公网。
说这个问题之前,我想先聊聊GB28181协议,首先我们需要了解的是GB28181是应用层协议,而不是传输层协议。
所谓应用层协议说简单点就是发送方跟接收方商议怎么协作:比如第一个信令由谁发起,视频流采用什么封装格式,什么时候开始推送视频,什么时候结束推送等等。GB28181协议规定下级(也可以理解为客户端)首先向上级(服务端)注册,这一点让内网摄像机设备通过GB28181协议主动推送视频到公网有了可能性。
局域网的摄像机设备只有内网IP,公网下的服务无法主动找到摄像机设备,然公网下的服务有公网IP,内网中的摄像机通过路由转换最终可以将注册信息发送给公网下的服务(这一点rtsp协议是做不到的,rtsp协议规定首先得服务端向客户端发送命令,所以内网摄像机设备通过rtsp协议主动推送视频到公网是行不通,通过在内网部署流媒体服务主动推送视频流到公网可行,代价是增加一台服务器)。
客户端设备已经注册上来了,接下来服务端要做的事情是查询设备信息以及发起视频流请求命令。
客户端设备跟服务端在同一个局域网时,服务端发送的查询及请求命令的目的地址直接填写客户端设备的IP及Port即可。客户端设备在内网服务端在公网时服务端发送命令的目的地址该填什么呢?直接填客户端设备的内网IP及Port?显然不正确,身在公网的服务根本不知道客户端设备内网IP + Port家住何方,哪一条路可以抵达。
服务端要想将命令成功发送给客户端设备必须得找到合适的路径(路由路径)。合适的路径在哪,摄像机设备注册到服务端会产生一条从内网设备到公网服务的路径,服务端沿着这条路径下发命令即可将命令发送给内网客户端设备。服务端并不用关心这条路径的所有节点,只要将目的地址的IP及Port设置为设备注册上来时公网测的IP及Port即可。
EasyGBS发展目标
EasyGBS流媒体平台(以下简称“EasyGBS”)支持GB/T28181协议接入,平台中包含GB/T28181接入服务器和GB/T28181流媒体服务器。接入服务器用于接收设备注册并提供信息上报设备控制等,GB/T28181流媒体服务器用于接收设备推流并输出RTSP、RTMP、HLS、FLV直播流分发。
【推荐】国内首个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攻略 —— 某应届生求职总结