我有一个涉及SILK的VoIP电话。 我能够在Wireshark中看到RTP有效载荷。 从RTP报头我可以理解采样率(例如24KHz)和帧大小(例如20ms)。 我想要做的是提取RTP有效负载并生成包含SILK编码音频的文件。 从the RTP payload format描述我可以看到,在文件中存储的情况下,每个音频块都需要一个块头,以指定采样率和块大小(因为块大小是可变的,并且每个块都可以不同帧)。
如何生成具有正确文件头(“幻数”)的文件,并为每个音频块添加块头?
我可以使用一些不同的编程语言,所以我主要对所需的算法感兴趣,但是会喜欢对代码实现(或者某些现有工具?)的引用。
答案 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 我想还有其他方法,并且很想知道它们。