調試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