什么是码率控制
码率控制,指的是通过视频编码的输入或编码参数进行调整,获得最优的码率输出,以适应环境需求。最典型的场景是,实时通信(RTC)的视频编码过程中,根据网络的实时情况,调整视频编码分辨率,当网络变差时调低分辨率以保证流畅性。
WebRTC的码率控制
WebRTC运用于RTC领域,诸如视频会议、直播场景,要保证对用户足够友好的视频流畅度、清晰度,因而码率控制尤为重要。以下分别从WebRTC码率控制的输入、输出进行概述:
输入
- CPU使用度检测(cpu overusing)
- QP检测 (quality)
- 网络状况
输出
- 分辨率调整
- 帧率调整
- 丢帧
本系列博客将会对上述内容逐一介绍。除了介绍原生代码的实现,也会做一些分析,或者提供改进的建议。
PS: 本文分析的WebRTC是 owt 79-sdk 对应的版本
https://github.com/open-webrtc-toolkit/owt-deps-webrtc/tree/79-sdk
欢迎大家在评论区一起交流讨论,共同进步。如果有描述不准确的,还请大家批评指正。