【问题标题】:Convert a RTP sequence payload (coded with GSM\ opus\speex ) in a .wav file在 .wav 文件中转换 RTP 序列有效负载(使用 GSM\ opus\speex 编码)
【发布时间】:2014-05-25 06:48:31
【问题描述】:
我有一个包含 RTP 数据包负载的文本文件(十六进制,用 GSM\ opus\speex 编码)属于 VoIP 对话,有人知道如何将此文件转换为 .wav 音频文件吗?
我正在使用 Windows。
谢谢
【问题讨论】:
标签:
voip
rtp
codec
speech
【解决方案1】:
.wav 只是一个文件容器,您可以拥有任何编解码器格式,并使播放器能够识别其中的编解码器。请参阅 Wiki:WAV,有关更多技术细节,请参阅 WaveFormat。它只是包装原始编解码器内容。如果您有 C 程序经验,可以使用开源代码将一种编解码器转换为 PCM。由于 PCM 是 16 位格式的原始音频数据。
但我建议了一个解决方案,但不知道它是否能满足您的要求。
- 安装最新的wireshark
- 使用wireshark 捕获RTP 数据包。
- 选择UDP数据包并右键单击并选择解码为选项
- 选择传输选项卡并选择 RTP 协议
- 现在您可以看到带有正确编解码器的 RTP 数据包
- 转到电话 -> RTP -> 流分析 -> 将 RTP 有效负载另存为 .raw
在此阶段,编解码器数据以 .raw 文件格式提供。
有可用的开放软件如SoX、ffmpeg 等...
从那里您可以将 .raw 转换为 .wav 格式。
之后您可以在 VLC (PCM, GSM, ADPM, Alaw , uLaw) 或任何其他支持的播放器 (Amr) 中播放
您不会找到 Speex、g729,因为这些是付费的