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



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

我如何生成一个文件与正确的文件头("魔术数字"),并为每个音频块添加一个块头?

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

使用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

最新更新