從Wireshark封包檔擷取以RTP串流的RTSP影音資料
因為最近工作上要確認影音封包狀態,所以需要從Wireshark封包檔擷取RTSP的影音資料,再用播放器開起來確認是否正常。
不過遭遇了擷取出的檔案使用RTP作為串流格式,該檔案只有ffplay可以播放,vlc和Ubuntu內建的影音播放器皆無法播放,使用mediainfo也無法工作,什麼資訊都沒有。
抓出RTP Stream
首先把照網路上的操作把RTP串流給丟出來,不過這裡 https://wiki.wireshark.org/rtpdump 寫的是舊版的作法
Saving an RTP stream in Wireshark for use with rtpdump/rtpplay
Statistics > RTP > Show all streamsNow select the stream you are interested in.Save As
就算是新版說明文件,裡頭也沒有改說明,找了一陣子最後是用:
- 開啟擷取的封包檔
- 使用RTP Stream選取器
工具列→Telephony→RTP→RTP Streams
選擇你的串流,以圖中的為例是選payload欄位是MPEG-II的串流(第三個) - 點擊Export按鈕,儲存成sniffer.rtpdump
它預設是沒有副檔名,記得加上
建置RTPDump
由於舊版文件寫的RTPDeump下載位置 http://www.cs.columbia.edu/IRT/software/rtptools/ 已經不提供服務,在新版說明文件有更新要從github下載程式碼來建
git clone https://github.com/irtlab/rtptools
cd rtptools
./configure
make
然後就可以在資料夾內得到rtpdump,可以用來處理wireshark擷取封包檔的rtp影音資料
用RTPDump擷取影音資料
指令如下
./rtpdump -F payload -f sniffer.rtpdump -o dump.raw
-F payload就是把rtp的payload擷取出來,就會是我們要的影音資料。
-f 指定輸入檔案
-o 指定輸出檔案
dump.raw就可以用多媒體播放器來播放了
ffplay dump.raw
cvlc dump.raw
mediainfo-gui dump.raw > info.txt
留言