Wireshark的AMR Raw输出没有在玩家中玩

时间:2012-02-10 09:39:41

标签: wireshark amr

我在RTP中遇到与AMR编解码器相关的问题。

我有采用AMR-NB和AMR-WB编解码器的pcap格式的RTP捕获。

现在,使用RTP流分析,我已经提取了原始输出,但我无法在任何播放器中播放提取的原始输出。

有什么方法可以播放原始输出或解码它并保存原始格式或将其重新编码为其他格式?

此致 尼丁

2 个答案:

答案 0 :(得分:3)

Wireshark不进行必要的转换,将RTP AMR有效负载转换为.amr文件使用的存储格式(用于音频应用程序播放)

RFC 4867描述了各种有效负载和存储格式。我建议您阅读本文以熟悉不同的格式。然后,您需要执行以下步骤:

  1. 找出正在使用的有效负载格式(例如八位字节对齐或带宽有效)。这通常可在SIP / SDP协商中找到
  2. 使用RFC 4867作为指南编写脚本以将有效负载转换为.amr文件
  3. 播放.amr文件或使用ffmpeg
  4. 等工具将其转换为其他格式

    我已经粘贴了一些用于执行有效负载转换的示例Python代码here

答案 1 :(得分:0)

好吧让我们再说一遍: 我有一个包含RTP数据包的PCAP文件。 其中有SIP和AMR消息(宽带或窄带) 我想获得相应的AMR声音文件,每个播放器都可以播放。

Alex Cohn的方法似乎很容易。只需添加和删除可从PCAP导出的一些位。因为看起来可以导出原始有效载荷。

这是否意味着python脚本需要此* .raw数据作为输入并将文件转换为可播放的AMR格式,我只需要区分AMR-NB或AMR-WB?

SID消息怎么样?是否会自动插入NO_DATA帧?

那么从PCAP开始一步一步地做什么?