音视频入门基础:MPEG2-PS专题(8)——使用Wireshark分析GB28181的PS流

=================================================================

音视频入门基础:MPEG2-PS专题系列文章:

音视频入门基础:MPEG2-PS专题(1)------MPEG2-PS官方文档下载

音视频入门基础:MPEG2-PS专题(2)------使用FFmpeg命令生成ps文件

音视频入门基础:MPEG2-PS专题(3)------MPEG2-PS格式简介

音视频入门基础:MPEG2-PS专题(4)------FFmpeg源码中,判断某文件是否为PS文件的实现

音视频入门基础:MPEG2-PS专题(5)------FFmpeg源码中,解析PS流中的PES流的实现

音视频入门基础:MPEG2-PS专题(6)------FFmpeg源码中,获取PS流的视频信息的实现

音视频入门基础:MPEG2-PS专题(7)------通过FFprobe显示PS流每个packet的信息

音视频入门基础:MPEG2-PS专题(8)------使用Wireshark分析GB28181的PS流

=================================================================

一、引言

按照《海康网络摄像机接入EasyGBS GB28181平台》中的方法,将支持GB28181的海康网络摄像机接入EasyGBS GB28181平台。如果国标传输协议的取流方式选择的是UDP:

那进行直播时,摄像机通过GB28181传输的音视频流的格式就是RTP封装的PS流:

二、Wireshark抓包分析

(一)SDP分析

对摄像机的数据进行抓包。以我使用的海康摄像机为例,首先分析SIP信令(INVITE)中携带的SDP。GB28181里面,SIP负责建立和释放会话,而媒体数据由SDP描述。SDP与SIP配合使用时会放到SIP协议的body中。会话建立时,需要通过SDP进行媒体协商,双方才能确定对方的媒体能力以及交换媒体的数据(关于SDP协议可以参考:《音视频入门基础:RTP专题(3)------SDP简介》)。选中SIP的INVITE方法,右键 -> "追踪流" -> "SIP Call":

可以看到映射PT值(payload type,有效载荷类型)为96的负载类型到PS(MPEG2-PS)编码,采样率为90000Hz。由《音视频入门基础:RTP专题(7)------RTP协议简介》可以知道,有效载荷标识符 96-127 用于会话期间动态定义的有效载荷。MPEG2-PS没有具体的PT值,只能使用动态(dynamic)PT值:

(二)RTP header分析

选中其中一个RTP数据包(RTP packet),下图红框中显示的就是其RTP header(关于RTP header的格式可以参考:《音视频入门基础:RTP专题(7)------RTP协议简介》)。可以看到该RTP数据包的RTP header的payload type值为96,为动态(dynamic)PT值。该值跟SDP描述中的PT值对应。所以可以确定其RTP payload中存放的是PS,即MPEG2-PS格式的数据:

(三)提取出PS裸流

GitHub - hongch911/WiresharkPlugin: The H265 H264 PS PCM AMR SILK plugin for Wireshark Lua 下载rtp_ps_assemble.lua和rtp_ps_export.lua。将这两个脚本放到Wireshark的plugins目录下:

重新打开Wireshark,可以看到"工具"菜单多了个"Video"选项。"工具" -> "Video" -> "Export PS":

Export All,然后点击"Browser":

可以看到生成了XXX.ps文件。该文件即为ps裸流文件:

该文件可以用vlc等播放器播放:

也可以用Elecard Stream Analyzer打开分析:

相关推荐
zzc9216 小时前
TLSv1.2协议与TCP/UDP协议传输数据内容差异
网络·测试工具·安全·wireshark·ssl·密钥·tlsv1.2
Jinkxs10 小时前
告别“测试滞后”:AI实时测试工具在敏捷开发中的落地经验
人工智能·测试工具·敏捷流程
秃了也弱了。1 天前
WireShark:非常好用的网络抓包工具
网络·测试工具·wireshark
敲上瘾1 天前
Linux系统cgroups资源精细化控制基础
linux·测试工具·docker·压力测试·cgroups
早睡身体好~1 天前
【lubancat】鲁班猫4实现开机后自动播放视频
音视频·linux开发
小幽余生不加糖1 天前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频
胡耀超1 天前
DataOceanAI Dolphin(ffmpeg音频转化教程) 多语言(中国方言)语音识别系统部署与应用指南
python·深度学习·ffmpeg·音视频·语音识别·多模态·asr
天才测试猿1 天前
常见的Jmeter压测问题
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·压力测试
shix .1 天前
bilibili视频总结
音视频
飞向蓝天22 天前
基于wireshark的USB 全速硬件抓包工具USB Sniffer Lite的使用
wireshark·sniffer lite·usb sniffer·usb抓包·usb协议分析