作業系統 :Windows10_x64 、CentOS 7.6.1810_x64
wireshark版本:3.6.12
Python 版本 : 3.9.12
工作中有時候會遇到需要從pcap抓包檔案裡面提取音訊的情況,比如下面這些場景:
從pcap檔案裡面匯出wav檔案
從pcap檔案裡面匯出mp3檔案
...
本文以pcma音訊編碼為例,介紹下從pcap檔案提取音訊的流程。
這裡提供兩種實現方式從pcap檔案提取音訊的流程,分別為Windows 10環境和CentOS 7環境。
1、Windows 10環境使用wireshark提取rtp音訊
wireshark版本:3.6.12
1)開啟pcap檔案,選擇 voip 通話;
2)選中需要提取的通話,然後點選播放;
3)在彈出的視窗,點選播放按鈕可以實時聽取音訊流;
4)選中需要匯出的聲道,執行匯出音訊操作;
5)在彈出的視窗選擇匯出的音訊格式,目前的版本支援wav格式、au格式;
這裡以wav格式為例展示下匯出效果:
2、CentOS 7環境使用python提取rtp音訊
使用python匯出rtp音訊大概分為以下兩個步驟:
1)使用libpcap從pcap檔案中提取raw格式的音訊;
libpcap的使用可以參考這篇文章:python3使用libpcap庫進行抓包及資料處理
2)使用ffmpeg將raw格式轉換成需要的格式(比如wav)
可安裝ffmpeg後直接使用,也可自行編譯,centos下編譯ffmpeg可以參考這篇文章:CentOS7環境下編譯FFmpeg
範例程式碼如下:
完整程式碼從如下途徑獲取:
關注微信公眾號(聊聊博文,文末可掃碼)後回覆 2023032601 獲取。
執行效果如下:
本文涉及範例程式碼和檔案,可從百度網路硬碟獲取:
https://pan.baidu.com/s/1NVo9TK5bJwo1CUk5gE9qmA
關注微信公眾號(聊聊博文,文末可掃碼)後回覆 2023032601 獲取。