GB28181抓包记录

GB28181抓包记录

💡 原文中文,约28200字,阅读约需67分钟。
📝

内容提要

本文记录了GB28181协议的抓包过程,包括客户端与服务端的注册、心跳、设备查询、点播、云台控制及录像操作,详细展示了各类SIP消息的交互,涵盖设备状态、信息查询、视频播放及下载等功能,为相关开发研究提供参考。

🔎

延伸解读

注册与鉴权流程解析

抓包显示,客户端首次REGISTER被服务端以401 Unauthorized拒绝,并返回WWW-Authenticate头,包含realm、nonce等参数。客户端随后在第二次REGISTER中携带Authorization头,使用MD5算法计算响应值,最终获得200 OK。这体现了GB28181基于HTTP Digest的鉴权机制,开发时需正确处理401挑战与重发流程。

设备查询的三种类型

文章记录了Catalog、DeviceInfo和DeviceStatus三种查询。Catalog用于获取设备列表,返回通道编号、名称、厂商、型号等信息;DeviceInfo查询设备详细信息,如固件版本、最大通道数;DeviceStatus则获取设备在线状态、编码状态、录像状态及报警通道状态。这些查询均通过MESSAGE消息携带MANSCDP XML实现,服务端发起请求,客户端响应。

点播与录像操作的SIP交互

点播通过INVITE消息实现,服务端发送包含SDP的INVITE,客户端回复100 Trying、101 Dialog Establishment和200 OK(带SDP),服务端再发ACK,随后开始RTP推流。停止播放使用BYE。录像操作包括查询录像列表(RecordInfo)、播放录像(INVITE中s=Playback)、下载录像(INVITE中s=Download),播放控制通过INFO消息携带RTSP指令实现暂停、继续和倍速调整。

云台控制指令格式

云台控制通过MESSAGE消息发送DeviceControl命令,PTZCmd字段为8字节十六进制指令。例如上开始速度为100的指令为A50F000800640020,停止指令为A50F0000000000B4。FI指令用于聚焦,聚焦+指令为A50F004100640059。文章提到PTZCmd值的具体解释可参考GB/T 28181-2016标准,但未在文中展开。

❓

Q&A

GB28181协议的注册过程是怎样的?

注册过程包括客户端发送REGISTER消息,服务端返回401 Unauthorized,客户端再发送带Authorization的REGISTER消息,最终获得200 OK。

如何通过GB28181协议实现设备查询?

设备查询通过MESSAGE请求实现,分为Catalog、DeviceInfo和DeviceStatus,客户端可以获取设备列表、信息和状态。

GB28181协议的心跳机制是如何工作的?

心跳机制通过MESSAGE消息进行,客户端定期向服务端发送心跳信息以保持连接。

如何使用GB28181协议进行视频点播?

点播功能通过INVITE消息实现,客户端请求播放特定设备的视频流,服务端确认后开始媒体推流。

GB28181协议中如何控制云台?

云台控制通过MESSAGE消息发送PTZ指令,客户端可以控制云台的运动和焦距。

GB28181协议如何处理录像相关操作?

录像操作包括查询录像信息、播放录像和下载录像,客户端通过MESSAGE请求获取录像列表和进行录像播放。

🏷️

标签

➡️

继续阅读