内容提要
本文记录了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请求获取录像列表和进行录像播放。