操作系統 :Windows10_x64 、CentOS 7.6.1810_x64 wireshark版本:3.6.12 Python 版本 : 3.9.12 一、背景描述 工作中有時候會遇到需要從pcap抓包文件裡面提取音頻的情況,比如下麵這些場景: 從pcap文件裡面導出wav文件 從pcap文件 ...
操作系統 :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://files.cnblogs.com/files/MikeZhang/201804weixingongzhong1.gif)