webrtc音频QOS方法二(opus编码器自适应网络参数调整功能)
一、opus函数调用接口 二、自适应网络调整参数介绍 1、WebRtcOpus_SetBitRate Opus支持码率从6 kbit/s到510 kbit/s的切换功能,以适应这种网络状态。以20ms单帧数据编码为例,下面是各种配置的Opus的比特率最佳点。 2、WebRtcOpus_SetPacketLossRate 动态配置丢包率,是为了动态调整opus FEC的冗余度。opus编码器自带inband FEC冗余算法,增强抗丢包能力。大概使用的是非对称冗余协议。将一些关键信息多次编码重传。 3、WebRtcOpus_EnableFec/DisableFec 开启或者关闭inband FEC功能。 走读opus代码,发现只有silk编码支持inband FEC。函数实现调用栈如下: opus_encode_native ->silk_Encode ->silk_encode_frame_Fxx ->silk_encode_frame_FLP ->silk_LBRR_encode_FLP celt不支持inband FEC。猜测celt是通过改变参考帧长度,来增强抗网络丢包能力。 4、WebRtcOpus_EnableDtx/DisableDtx DTX:Discontinuous Transmission。不同于music场景,在voip场景下,声音不是持续的