WebRTC Metrics

A comprehensive overview of WebRTC statistics, derived indicators, and observable signals, to better understand call quality, connectivity, and user experience in rtcStats

Back
inbound-rtpinboundaudiovideo

bytesReceived(bits/s)

The bitrate of the incoming media stream.

Description

Real number; in bits per second

The bitrate of the incoming media stream.

This is calculated by converting the delta of bytesReceived to bits (by multiplying them by 8) and then dividing the result by the duration of that delta.

Interpreting Values

Audio (Opus): Typically 20-80kbps. Values outside this range are unusual

Video:

Range Description
<100kbps Very poor / audio-only fallback
100-300kbps Low quality
300-800kbps Acceptable SD
800kbps-2Mbps Good HD
>2Mbps High quality

Sudden drops often correlate with bandwidth estimation reducing the send rate

Common Causes

Low received bitrate is typically caused by:

  • Sender is bandwidth-limited
  • Sender is CPU-limited (cannot encode fast enough)
  • Network congestion forcing BWE (bandwidth estimation) reduction
  • TURN relay overhead consuming available bandwidth

User Experience Impact

  • Low video bitrate results in a blurry, pixelated image with compression artifacts
  • Very low bitrate may cause video to become a slideshow or be disabled entirely
  • Low audio bitrate affects quality and legibility of what is being said. This is rarely a user-facing issue as it requires very little bandwidth - usually, other metrics will indicate issues sooner (such as packet loss)

Troubleshooting

See also

Notes

  • bytesReceived offers the accumulation of bytes. Here, we are interested in the bytes that were received since the previous measurement of the metric
  • For voice codecs, we expect the resulting bitrate to fit within the configuration of that codec. For video codecs, we expect the resulting bitrate to fluctuate based on the video's content, network conditions, CPU performance, etc.