从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 获取。