從pcap文件中提取pcma音頻

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章