目录

1.背景

2.抓取RTP报文

3. 使用Wireshark解析报文

4. 导出音频文件

5. 使用Audacity进行播放


Wireshark抓RTP包并分析对应的音频

1.背景

VOIP电话,或者基于IP的E-CALL,其声音使用RTP协议传输,在分析定位声音问题时,特别是分析噪音等问题,需要借助工具解包分析;

2.抓取RTP报文

在android串口终端直接使用以下命令抓取对应网口数据, 命令如下

# tcpdump -i eth1_3 -s 0 -n -S -w /system/vlan3.pcap

3. 使用Wireshark解析报文

拿到抓包文件后使用Wireshark打开

图1 Wireshark打开抓包文件

并使用以下过滤条件进行过滤

ip.dst == 172.16.3.99 and udp.port == 50014

图2 Wireshark进行包过滤

选中其中一个数据包,右键选择[解码…(Decode As…)]

图3 Wireshark对包进行解码

选择RTP并点击OK

图4 RTP解码

此时wireshark界面可以看到已经将对应的报文作为RTP协议解析;

图5 RTP解析成功

然后选择【电话】-【RTP】-【RTP流】即[Telephony] – [RTP] – [RTP Streams];

图6过滤出对应RTP流

图7 选择对应的RTP 流

然后选中需要分析的流并点击【分析】(Analyze)

图8 对RTP流进行分析

4. 导出音频文件

由于当前传输的RTP并不是标准的RTP,而是使用PCM 16bit 小端 单通道 8000采样的raw格式;因此直接点击【Play Streams】播放会作为pcma编码来播放,将是噪音;

图9 已解析出对应的码流

需要我们保存成raw格式文件,点击【Save】,选择File Synchronized Forwar Stream Audio;即文件同步正向音频流;

图10 导出码流

在save对话页面,选择 raw,然后再save;

图11 保存码流为文件

5. 使用Audacity进行播放

打开audacity

图12

导入刚刚保存的audio文件

【File】-- 【Import】 -- 【Raw Data…】选择刚保存的文件

然后再弹窗中设置编码方式PCM 16bit 小端 单通道 8000采样

图13

图14

然后点击【Import】

图15

可以单击播放按钮来进行试听,看看音频是否有噪音,分析音频相关参数等等。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐