作業系統 :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 獲取,
微信公眾號:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/548204.html
標籤:其他
