Wireshark抓RTP包并分析对应的音频
本文介绍了使用Wireshark抓取并分析RTP音频数据的方法。首先通过tcpdump命令抓取网络数据包,再用Wireshark解析RTP协议流。由于该RTP流采用PCM16bit小端单通道8000采样格式,需将音频数据导出为raw文件。最后使用Audacity导入该文件并设置正确的编码参数,即可播放分析音频质量。该方法适用于VOIP电话或IP E-CALL等场景下的音频问题定位,特别是噪音分析。
目录
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
可以单击播放按钮来进行试听,看看音频是否有噪音,分析音频相关参数等等。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)