WebRTC[6]-WebRTC控制视频编码偏好机制
目录
前言
WebRTC推视频流遇到带宽限制时,是如何取舍分辨率和帧率的呢?今天我们就来具体分析,先从对外接口介绍走起。
正文
iOS的OC接口:
编辑
Android的Java接口:
编辑
C++接口:
编辑
SetParametersInternal()具体实现如下:
编辑
这里 media_channel_ 对象会调用哪个SetRtpSendParameters()方法呢?具体要看 media_channel_ 是音频Channel还是视频Channel,如果是音频Channel则走如下逻辑:
编辑
今天讨论视频编码控制,音频方面就不深入了。如果是视频Channel则走如下逻辑:
编辑
这个方法比较长,后半部分如下:
编辑
看上面的代码,调用的SetRtpParameters()方法其实分别对应音频引擎和视频引擎,这里只讨论视频,我们跳转到对应视频逻辑:
编辑
通过上面的代码,我们看到了关于视频编码控制偏好的配置项参数degradation_prefer
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
WebRTC工作原理精讲 文章被收录于专栏
WebRTC 作为当下最热门的实时音视频通讯框架,涉及非常多的过程,比如采集、编码、组包、发包、传输、收包、丢包重传、解封装、解码、音视频同步、渲染等,同时还包括很多功能特性,比如ANS、AGC、AEC,REMB、GCC、CNG、FEC、PLI、SVC等,需要一点点深入理解其中的奥秘。