webrtc 视频编码格式及参数配置
一、视频编码格式初始配置
webrtc\media\engine\internalencoderfactory.cc
按照Push顺序,优先选取第一个编解码格式。
二、视频分辨率初始配置
webrtc\pc\videocapturertracksource.cc
选取的原则是,在kVideoFormats里面找参数与kDefaultFormat默认值最接近的一组参数,作为本端的编码能力。
三、视频码率默认值
webrtc\media\engine\webrtcvideoengine.cc
四、默认QP、帧率最大值配置
webrtc\media\engine\webrtcvideoengine.cc
static const int kDefaultQpMax = 56;
const int kDefaultVideoMaxFramerate = 60;
五、生效新的帧率码率流程
在webrtc里面函数实现如下:
->VideoStreamEncoder::EncodeVideoFrame
->VideoSender::AddVideoFrame----在这个函数中读取全局变量encoder_params_,判断是否需要调整视频参数。
->VideoSender::SetEncoderParameters
->VCMGenericEncoder::SetEncoderParameters
->H264EncoderImpl::SetRateAllocation---传递新的帧率码率到编码器。