從pcap檔案中提取pcma音訊

2023-03-26 21:01:17

作業系統 :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 獲取。