wireshark抓包数据提取TCP/UDP/RTP负载数据方法

wireshark抓包数据提取TCP_UDP_RTP负载数据方法

1 背景

在视频抓包分析过程中,有时候需要从TCP、UDP、RTP中直接提取payload数据,比如较老的摄像机,有一些直接通过TCP/UDP传输视频裸流,或者PS打包的视频流,通过提取TCP和UDP的负载数据就可以直接组成裸流或者PS流文件,通过视频分析工具(Elecard StreamEye Tools,可关注公众号壹零仓,发送视频流分析的消息)分析视频流数据是否正常。GB28181视频传输时通过RTP携带PS流的方式传输,因此通过提取RTP负载数据,形成的文件即是PS流文件,可通过分析工具直接分析PS流。

2 TCP和UDP负载提取方式

TCP和UDP提取其负载数据比较简单,他们提取方法很相似,如下:

  • UDP负载数据提取方法:在UDP包数据列表中右键->Follow->UDP Stream,打开Udp Stream对话框,对话框中集合了所有你选择的数据包的四元组上的通讯数据,默认显示为ASCII,右下角show data as 选择raw,点击save as 保存成二进制文件,文件中数据即为UDP负载数据
    1

  • TCP负载数据提取方法:与UDP方式类似,在TCP包数据列表中右键->Follow->TCP Stream,打开TCP Stream对话框,对话框中集合了所有你选择的数据包TCP连接上所有的通讯数据,默认显示为ASCII,右下角show data as 选择raw,点击save as 保存成二进制文件,文件中数据即为TCP负载数据。

2

3 RTP负载提取方式

现在的视频采集终端基本不会直接通过TCP或者UDP传输裸流,比较常用的是通过RTP方式来传输裸流或者PS流,RTP方式传输H264或者H265裸流的提取方式可以通过关注公众号壹零仓,发送wiresahrk的消息,获取提取方式,这里详细介绍直接提取RTP负载,不做任何组包操作,这里以PS over rtp流的包为例,从此包中提取RTP流的方式。

  • 打开样例的抓包文件gb28181_h264_rtp_udp.pcapng,可自己抓一个PS over RTP的包,也可关注公众号壹零仓,发送视频流分析,获取。

  • 在数据包列表中,最新版应该会自动识别,如果传输的PS流未解码成RTP协议,可以选择PS流数据包右键->decode as…,在current属性列表中选择rtp,解码成rtp包,如果未视频成rtp可通过此步骤解码,此时包的协议类型wei2rtp,可以看到其payload type。
    i

  • 选择菜单栏Telephony->RTP->RTP Player,打开RTP Player
    2
    3

  • 选择RTP的视频链路,选择export->payload,保存rtp负载,这里保存文件名为111.raw
    4

  • 保存的RTP负载文件,为PS流二进制文件,可通过Elecard StreamEye Tools进行分析,如下:
    5

猜你喜欢

转载自blog.csdn.net/water1209/article/details/128389756
今日推荐