RTCRtpSendParameters.degradationPreference

When encoding video, and some constraint (bandwidth, CPU) prevents encoding at the configured framerate and resolution, the encoder must make a choice on how to modify the encoding parameters. An attribute is defined for RTCRtpSendParameters that allows this to be explicitly indicated for an RTCRtpSender.

Developers need to be able to control how the quality degrades as different types of content have different requirements. On a screenshare presentation, users will probably prefer to be able to read what is being presented on the screen rather than having super smooth animations. But on a normal video call, a smooth framerate is probably more important than having a higher resolution. Developers need to be able to signal what is preferred for their application and possibly update it as desired.

Documentation

Specification

Working draft or equivalent

Status in Chromium

Blink>WebRTC


Enabled by default (tracking bug) in:

  • Chrome for desktop release 83
  • Chrome for Android release 83
  • Android WebView release 83

Consensus & Standardization

After a feature ships in Chrome, the values listed here are not guaranteed to be up to date.

  • Public support
  • No public signals
  • No public signals
  • No signals

Owner

Last updated on 2020-04-02