2

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

4

2 回答 2

1

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

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

于 2015-05-14T10:22:28.527 回答
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/)。

于 2016-12-15T15:53:06.987 回答