使用Wireshark在RTP流中提取中264数据(针对udp)

        调试rtsp收发流时,经常会需要抓包以确认是网络问题还是程序问题还是其它问题。通过tcpdump或者wireshark抓到的包通常是rtp流,保存为.pcap格式文件后中,可通过wireshark进行解析,得出h264裸流,并保存为文件。

        我这里有一段rtp流文件,作为演示使用(这个文件有点不标准,一般一个nal打一个mark,但这里是一帧打一个mark)

        网盘地址 链接:https://pan.baidu.com/s/1s0aitAmaSED_prvWRVRIYQ 提取码:r1cp

安装lua工具

  •         这个工具是百度搜索来的,因为使用过程不清楚,于是我将在这里演示一遍,工具文件rtp_h264_extractor.lua也放在了上面的网盘中。

1. 工具文件rtp_h264_extractor.lua放在 Wireshark 安装目录中。

        右键wireshark图标 --> 属性 --> 打开文件所在位置,即可进入到wireshark安装目录,将工具文件放到此目录中。

使用Wireshark在RTP流中提取中264数据(针对udp)_第1张图片

2. 编辑目录中的 init.lua 文件,在末尾添加 "dofile(DATA_DIR.."rtp_h264_extractor.lua")" 以加载工具文件

3. 打开wirshark后,可 菜单栏 “工具” 项中看到 “Extract h264 stream from RTP” 一项

使用Wireshark在RTP流中提取中264数据(针对udp)_第2张图片

Wireshark将流解析为RTP H264

        抓到的包如果不是单纯的某个端口的 udp rtp 264流,则需要先进行过滤解析,

1. 过滤端口

使用Wireshark在RTP流中提取中264数据(针对udp)_第3张图片

2. 解析为RTP流

    选中某一个包,右键 --> 解码为 --> 选择 RTP类型

使用Wireshark在RTP流中提取中264数据(针对udp)_第4张图片

3. 解析为 H264的RTP包

    先查看rtp包中的video的负载类型,如下,这里的值是96

使用Wireshark在RTP流中提取中264数据(针对udp)_第5张图片

    菜单栏 编辑 --> 首选项 --> Protocols --> H264,填写96

使用Wireshark在RTP流中提取中264数据(针对udp)_第6张图片

 

使用工具,提取264流并保存为文件

    菜单栏 工具 --> 选中 rtp_h264_extractor 工具

使用Wireshark在RTP流中提取中264数据(针对udp)_第7张图片

 

待底部进度走完,即可在pcap文件同目录中生成了dump.264文件,可使用 Elecard StreamEye 等工具播放

使用Wireshark在RTP流中提取中264数据(针对udp)_第8张图片

 

 

 

你可能感兴趣的:(多媒体)