如何将包含SILK编码音频的RTP有效负载转换为文件?

时间:2013-05-09 13:06:46

标签: wireshark rtp codec

我有一个涉及SILK的VoIP电话。 我能够在Wireshark中看到RTP有效载荷。 从RTP报头我可以理解采样率(例如24KHz)和帧大小(例如20ms)。 我想要做的是提取RTP有效负载并生成包含SILK编码音频的文件。 从the RTP payload format描述我可以看到,在文件中存储的情况下,每个音频块都需要一个块头,以指定采样率和块大小(因为块大小是可变的,并且每个块都可以不同帧)。

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

我可以使用一些不同的编程语言,所以我主要对所需的算法感兴趣,但是会喜欢对代码实现(或者某些现有工具?)的引用。

2 个答案:

答案 0 :(得分:3)

使用pjproject pcaputil :将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

答案 1 :(得分:0)

我最终找到了一个解决方案,并将其记录为here 我想还有其他方法,并且很想知道它们。