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

posted on 2023-03-26 18:55  Mike_Zhang  阅读(1070)  评论(0编辑  收藏  举报