我需要将音频文件(任何常见格式(转换为rtp stream
,并使用G.722
编解码器保存在.pcap
文件中。
生成的.pcap
文件将使用以下内容与 SIPp 一起发送:
<exec play_pcap_audio="g722.pcap"/>
我知道如果.wav
编码正确,也可以使用以下命令发送.wav
文件:
<exec rtp_stream="g711.wav"/>
但似乎不可能用G722
对.wav
进行编码。
关于如何将.pcap 转换为音频文件,网络上和 SO 上有多种解决方案,但我实际上正在寻找相反的解决方案。
将wav
音频转换为.pcap
文件的步骤:
- 将音频拆分为 20 毫秒的块
- 使用编码器对每个区块进行编码
G.722
- 为每个编码的区块创建 RTP 标头
- 将 RTP 流保存到
.pcap
我从未使用过 SIPp,但如果它可以处理编码G.722
流,请使用 ffmpeg 进行编码:
ffmpeg -i sample.wav -ar 16000 -acodec g722 sample.g722
获取支持 wav 文件的软电话作为源和 G.722 编解码器,仅在启用 G.722 的情况下拨打电话,将 RTP 流捕获到 pcap。