Adaptive-ptime Field in RTCConfiguration

Adds the adaptivePtime flag to the RTCConfiguration dictionary, which indicates that the audio frame length should be adaptive. That is, the frame length is allowed to change during the call, so as to optimize the trade-off between bandwidth consumption and latency, according to the characteristics of the network. adaptivePtime only indicates that this may be done, not how it should be done.

The default audio codec in WebRTC is Opus. By default, 20ms frames are produced, meaning 50 frames per second. Since each is transmitted in its own RTP packet, which in turn takes up its own UDP datagram, in its own IP frame, in its own L2 packet, substantial bandwidth is expended on overhead. To illustrate, assume IPv4 over Ethernet. Assume 14B for Ethernet, 20B for IPv4, 8B for UDP, and 24B for RTP. This sums up to 66B per frame, or 50 * 66 * 8 = 26.4kbps. This overhead can be reduced by increasing the frame length; however, this comes at the cost of audio latency, due to increased buffering on the sender. Whether the trade-off favors longer or shorter frames, depends on the available bandwidth - a dynamic property.

Documentation

Status in Chromium

Blink>JavaScript


In development (tracking bug)

Consensus & Standardization

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

  • No public signals
  • No public signals
  • No public signals
  • No signals

Owner

Last updated on 2019-09-25