解码.raw voip数据到opus

时间:2015-05-14 00:00:33

标签: voip encode rtp decoder opus

我有这个带有RTP数据包的捕获文件(pcap)似乎是由opus编码的。在wireshark中,分析了流并保存为原始文件。 现在我有了音频的.raw文件。使用http://www.opus-codec.org/downloads/中的opus工具 我无法直接将其解码为wav,因为该文件是原始的,而不是.opus。我无法将其编码为.opus,因为此原始数据是已编码流的提取。 我只需要播放这个声音。有任何建议请

2 个答案:

答案 0 :(得分:1)

据我所知,你无法解码以这种方式提取的Opus流 - 帧信息丢失了。您需要编写能够解码opus的Wireshark模块或编写另一个工具来将RTP中的流提取到另一个容器中(通常使用OGG)。

http://xiph.org/~giles/2012/rtpopus.c似乎是您需要的工具。

答案 1 :(得分:1)

老问题,但如果有人需要解码Opus RTP数据包,这里有解决方案:

PJSIP附带了一个工具(pjsip-apps/src/samples/pcaputil.c)。它默认编译,只需确保在构建PJSIP之前安装了libopus-dev。只需将带有RTP数据包的pcap文件提供给pcaputil,并在命令行中指定编解码器(例如" opus / 48000")。您将解码后的音频作为PCM WAV文件。

pcaputil也可以解密SRTP数据包(如果给出密钥),但是我无法使用它而是使用srtp-decrypt解密数据包,然后Wireshark将.txt输出转换回.pcap用于喂养PJSIP的pcaputil(另见https://www.acritelli.com/hacking-voip-decrypting-sdes-protected-srtp-phone-calls/)。