美安居装饰 发表于 2023-3-26 18:22:53

从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
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326185259674-434222542.png
1)打开pcap文件,选择 voip 通话;
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326184019338-115451728.png
 2)选中需要提取的通话,然后点击播放;
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326184035032-1279943667.png
 3)在弹出的窗口,点击播放按钮可以实时听取音频流;
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326184050804-2078032363.png
 4)选中需要导出的声道,执行导出音频操作;
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326184105755-1277454161.png
 5)在弹出的窗口选择导出的音频格式,目前的版本支持wav格式、au格式;
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326184127700-131479330.png
 这里以wav格式为例展示下导出效果:
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326184143573-1730004548.png
2、CentOS 7环境使用python提取rtp音频
使用python导出rtp音频大概分为以下两个步骤: 
1)使用libpcap从pcap文件中提取raw格式的音频; 
libpcap的使用可以参考这篇文章:python3使用libpcap库进行抓包及数据处理
 2)使用ffmpeg将raw格式转换成需要的格式(比如wav)
可安装ffmpeg后直接使用,也可自行编译,centos下编译ffmpeg可以参考这篇文章:CentOS7环境下编译FFmpeg
示例代码如下:
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326184315752-83660886.png
完整代码从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023032601 获取。
运行效果如下:
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326184358587-1091337163.pnghttps://img2023.cnblogs.com/blog/300959/202303/300959-20230326184405844-1185654824.png
三、资源获取

本文涉及示例代码和文件,可从百度网盘获取:
https://pan.baidu.com/s/1NVo9TK5bJwo1CUk5gE9qmA
https://img2023.cnblogs.com/blog/300959/202303/300959-20230326184510070-2096882941.png
关注微信公众号(聊聊博文,文末可扫码)后回复 2023032601 获取。

来源:https://www.cnblogs.com/MikeZhang/p/20230326-pcapToWav.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 从pcap文件中提取pcma音频