whatsapp 语音通话 音频编码(三)

如有有遇到什么问题的可以通过whatsapp 联系我。
+66627011785
通过RTP 将语音数据发给对方之前需要将语音数据进行编码,whatsapp 采用opus编码。Opus编码是由silk编码和celt编码合并在一起,silk编码是由skype公司开源的一种语音编码,特别适合人声,适合于Voip语音通信。celt和mp3,aac类似,适合于传输音乐。Opus编码具备以下特点:

  • 6 kb /秒到510 kb / s的比特率
  • 采样率从8 kHz(窄带)到48 kHz(全频)
  • 帧大小从2.5毫秒到60毫秒
  • 支持恒定比特率(CBR)和可变比特率(VBR)
  • 从窄带到全频段的音频带宽
  • 支持语音和音乐
  • 支持单声道和立体声
  • 支持多达255个频道(多数据流的帧)
  • 可动态调节比特率,音频带宽和帧大小
  • 良好的鲁棒性丢失率和数据包丢失隐藏(PLC)
    -浮点和定点实现

在发起语音通话的XMPP协商中,会有明确的opus编码标识

<call to='xx@s.whatsapp.net' id='xxx'>
    <offer call-creator='xxx:0@s.whatsapp.net' call-id='xxx' device_class='2015'>
        <privacy>xxx</privacy>
        <audio rate='8000' enc='opus'/>
        <audio rate='16000' enc='opus'/>
        <net medium='3'/>
        <capability ver='1'>AQT3CcT6</capability>
        <enc v='2' type='msg'>xxxx</enc>
        <encopt keygen='2'/>
    </offer>
</call>
<call from='xxx@s.whatsapp.net' version='2.24.2.75' platform='iphone' id='xx-81' t='xxx'>
    <accept call-id='xxx' call-creator='xxx@s.whatsapp.net'>
        <audio rate='16000' enc='opus'/>
        <net medium='1'/>
        <encopt keygen='2'/>
    </accept>
</call>
  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值