2

我有一个与 RTP 中的 AMR 编解码器相关的问题。

我有具有 AMR-NB 和 AMR-WB 编解码器的 pcap 形式的 RTP 捕获。

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

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

问候尼丁

4

2 回答 2

3

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

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

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

我在此处粘贴了一些执行有效负载转换的示例 Python 代码

于 2012-02-14T16:06:54.367 回答
0

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

Alex Cohn 的方法似乎很简单。只需从可以从 PCAP 导出的内容中添加和删除一些位。看起来可以导出原始有效负载。

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

SID 消息呢?是否会自动插入 NO_DATA 帧?

那么从 PCAP 开始逐步做些什么呢?

于 2013-08-06T17:23:11.767 回答