调试rtsp收发流时,经常会需要抓包以确认是网络问题还是程序问题还是其它问题。通过tcpdump或者wireshark抓到的包通常是rtp流,保存为.pcap格式文件后中,可通过wireshark进行解析,得出h264裸流,并保存为文件。
我这里有一段rtp流文件,作为演示使用(这个文件有点不标准,一般一个nal打一个mark,但这里是一帧打一个mark)
网盘地址 链接:https://pan.baidu.com/s/1s0aitAmaSED_prvWRVRIYQ 提取码:r1cp
安装lua工具
- 这个工具是百度搜索来的,因为使用过程不清楚,于是我将在这里演示一遍,工具文件rtp_h264_extractor.lua也放在了上面的网盘中。——基本可参考:https://www.cnblogs.com/liushui-sky/p/13671360.html
1. 工具文件rtp_h264_extractor.lua放在 Wireshark 安装目录中。
右键wireshark图标 --> 属性 --> 打开文件所在位置,即可进入到wireshark安装目录,将工具文件放到此目录中。
2. 编辑目录中的 init.lua 文件,在末尾添加 "dofile(DATA_DIR.."rtp_h264_extractor.lua")" 以加载工具文件
3. 打开wirshark后,可 菜单栏 “工具” 项中看到 “Extract h264 stream from RTP” 一项
Wireshark将流解析为RTP H264流
抓到的包如果不是单纯的某个端口的 udp rtp 264流,则需要先进行过滤解析,
1. 过滤端口
2. 解析为RTP流
选中某一个包,右键 --> 解码为 --> 选择 RTP类型
3. 解析为 H264的RTP包
先查看rtp包中的video的负载类型,如下,这里的值是96
菜单栏 编辑 --> 首选项 --> Protocols --> H264,填写96
使用工具,提取264流并保存为文件
菜单栏 工具 --> 选中 rtp_h264_extractor 工具
待底部进度走完,即可在pcap文件同目录中生成了dump.264文件,可使用 Elecard StreamEye 等工具播放
转自:https://blog.csdn.net/lovehaihong5401/article/details/88085329
还可参考:https://blog.csdn.net/weixin_44022219/article/details/106670184