WEBRTC 发送端拥塞控制

音视频传输核心主要是通过发送端来控制服务质量,但服务质量的决策可根据发送端丢包率算法和接收端数据包延迟算法来计算实际的目标码率,进而反馈给源端,即编码端和RTP发送端,如下类图:

                

数据流图

                           

函数主要调用次顺:

拥塞算法得到的码率如何作用于编码模块和发送模块

CongestionController::Process->

BitrateControllerImpl::Process-> WrappingBitrateEstimator::Process->

CongestionController::MaybeTriggerOnNetworkChanged()->

BitrateControllerImpl::GetNetworkParameters->CongestionController:Observer::OnNetworkChanged->Call::OnNetworkChanged(uint32_ttarget_bitrate_bps, uint8_t fraction_loss,int64_t rtt_ms)->BitrateAllocator::OnNetworkChanged[改变编码码率]|CongestionController::SetAllocatedSendBitrate[改变发送码率]-> VideoSendStream::OnBitrateUpdated->PayloadRouter::SetTargetSendBitrate[ModuleRtpRtcpImpl::SetTargetSendBitrate进入RTP模块]->ViEEncoder::OnBitrateUpdated[进入编码模块]-> VideoSender::SetChannelParameters[encoder_params_为新的编码参数]-> VideoSender::SetEncoderParameters->VCMGenericEncoder::SetEncoderParameters->H264EncoderImpl::SetRates->


猜你喜欢

转载自blog.csdn.net/doitsjz/article/details/73412056