在.wav文件中转换RTP序列有效负载(使用GSM \ opus \ speex编码)

时间:2014-04-11 08:13:21

标签: voip rtp codec speech

我有一个文本文件,包含RTP数据包的有效负载(十六进制,用GSM \ opus \ speex编码)属于VoIP会话,是否有人知道如何将此文件转换为.wav音频文件?

我正在使用Windows。

由于

1 个答案:

答案 0 :(得分:1)

.wav只是一个文件容器,您可以使用任何编解码器格式,并让播放器识别内部的编解码器。请参阅Wiki:WAV,有关更多技术细节,请参阅WaveFormat。它只包装原始编解码器内容。如果您有C程序方面的经验,可以使用开源将一个编解码器转换为PCM。由于PCM是16位格式的原始音频数据。

但我建议一个解决方案,但不知道它会满足您的要求。

  1. 安装最新的wireshark
  2. 使用wireshark捕获RTP数据包。
  3. 选择UDP数据包并右键单击并选择解码为选项
  4. 选择“传输”选项卡,然后选择“RTP协议”
  5. 现在您可以看到带有正确编解码器的RTP数据包
  6. 转到电话 - > RTP - >流分析 - >将RTP Payload保存为.raw
  7. 在此阶段,编解码器数据以.raw文件格式提供。

    有可用的开放软件,例如SoX,ffmpeg等......

    从那里你可以将.raw转换为.wav格式。

    之后你可以玩VLC(PCM,GSM,ADPM,Alaw,uLaw)或任何其他支持的播放器(Amr) 你不会找到Speex,g729,因为这些是付费的