随笔 - 936  文章 - 0  评论 - 3  阅读 - 30万

EasyGBS通过GB2818下载流程结合抓包数据详细记录

GB28181国标协议解决了平台与平台的对接问题,主要是基于SIP信令来进行信息的交互。为了紧跟国家的步伐,我们在早期研发了EasyGBS平台,可支持国标协议的所有能力。本文我们对国标GB28181协议下载流程做个说明,同时也对抓包进行一个简单的模拟。

下载流程命令

一、首先上级域平台通过发送 INVITE 告诉下级域平台它需要下载的录像的时间段、接收录像的地址和端口等信息;

二、下级平台收到 INVITE 之后,会先回复 100 Trying,然后再回复 200 OK,告诉上级域发送录像的地址和端口等信息;

三、上级域收到 200 OK 后,会通过 ACK 信令告诉下级域“我准备好了,可以开始发流了”,然后下级域就开始了发流过程;

四、在上级域下载录像的时候,上级域会发送 INFO 信令告诉下级域它下载的录像速率;

五、下级域收到上级域发送的 INFO 之后,会根据上级域的要求回复 200 OK;

六、在录像下载完成的时候,下级域会发送MESSAGE消息告诉上级域录像“已经发送完了,可以结束了”;

七、上级域收到 MESSAGE 信令后,先回复 200 OK 表示“知道了”,然后再发送 BYE 消息告诉下级域“我断开连接了”;

八、下级域收到上级域的 BYE 消息之后,也会回复 200 OK 表示“知道了”,至此下载结束。

抓包示例:

上级域(172.1.0.16) 下级域(172.1.0.22)

下级域回复的 200 OK 中携带了媒体流发送地址和发送端口,y 字段(SSRC 值需要和请求时的 SSRC 值一样)

录像下载开始之后,上级域会做一些操作,发送的 INFO 消息里面会携带一些字段,如下图所示为四倍速下载:

录像下载完之后,下级域会发送 MESSAGE 信令告诉上级域历史媒体流发送完了,可以结束播放了。MESSAGE 字段里面 Mediastatus 字段表示媒体通知消息,DeviceID 表示媒体流发送设备的 ID(此处是相机 ID),NotifyType 表示通知的事件类型,参数为 121 代表历史媒体文件发送结束,即发流结束。随后上级域发送 BYE,整个下载流程结束。

 

posted on   EasyGBS  阅读(308)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示