1

我有一个涉及SILK的 VoIP 呼叫的 pcap 。我可以在 Wireshark 中看到 RTP 有效负载。从 RTP 标头中,我可以了解采样率(例如 24 KHz)和帧大小(例如 20 毫秒)。我想做的是提取 RTP 有效负载并生成一个包含 SILK 编码音频的文件。从RTP有效载荷格式描述我可以看到,在存储在文件中的情况下,每个音频块都需要一个块头,来指定采样率和块大小(因为块大小是可变的,并且每帧可以不同)。

如何生成具有正确文件头(“幻数”)的文件并为每个音频块添加块头?

我可以使用几种不同的编程语言,所以我主要对所需的算法感兴趣,但希望能参考代码实现(或者可能是一些现有的工具?)。

4

1 回答 1

4

使用pjprojectpcaputil:将捕获的 PCAP 文件中的 RTP 数据包转换为 WAV 文件或播放到音频设备。可以过滤源或目标IP或端口上的PCAP文件,能够处理SRTP并支持PJMEDIA中的所有编解码器,包括SILK(我自己没有尝试过)。

例子:

pcaputil file.pcap output.wav

pcaputil -c AES_CM_128_HMAC_SHA1_80 -k VLDONbsbGl2Puqy+0PV7w/uGfpSPKFevDpxGsxN3 file.pcap output.wav
于 2015-10-23T15:25:24.330 回答