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
outbound-rtpoutboundaudiovideo

targetBitrate

Reflects the current encoder target in bits per second.

Description

Real number

Reflects the current encoder target in bits per second.

The target is an instantaneous value reflecting the encoder's settings, but the resulting payload bytes sent per second, excluding retransmissions, SHOULD closely correlate to the target.

The targetBitrate is defined in the same way as the Transport Independent Application Specific (TIAS) bitrate RFC3890.

Interpreting Values

Audio targets: | Codec | Bitrate | |-------|---------| | Opus | 20-50 kbps (typical) | | G.711 | 64 kbps (fixed) |

Audio targets are usually stable and rarely fluctuate

  • Video targets: | Range | Description | |-------|-------------| | 150-300 kbps | Low quality, mobile-friendly | | 500 kbps-1.5 Mbps | SD quality (480p-720p) | | 1.5-4 Mbps | HD quality (720p-1080p) | | 4-8+ Mbps | Full HD/4K |

If targetBitrate is much lower than what the application configured as the maximum, bandwidth estimation is constraining the encoder

Common Causes

  • Bandwidth estimation detected congestion and reduced the target
  • Packet loss triggered bitrate reduction as a congestion response
  • Available upload bandwidth is genuinely limited
  • Sudden network changes (WiFi to cellular, network congestion spike) cause rapid target drops

User Experience Impact

  • Low target means the encoder compresses more aggressively, resulting in blurrier video
  • More visible compression artifacts, especially during motion
  • Possible lower resolution or frame rate if the target drops below what the current settings require
  • Audio targets are usually stable - audio quality is rarely affected by bitrate changes
  • A rapidly fluctuating target indicates an unstable network, which users perceive as inconsistent video quality

Troubleshooting

  • Compare with availableOutgoingBitrate - if target matches available bandwidth, the network is the constraint
  • If target is lower than available bandwidth, there may be a configuration issue or encoder-side limitation
  • Check qualityLimitationDurations for "bandwidth" to confirm network-driven constraints
  • Verify the application's configured max bitrate is not set too low
  • Monitor for correlation with packet loss events - loss spikes typically trigger target reductions

Notes

  • This is the target bitrate for the encoder. The actual generated bitrate of the encoder may be lower or higher than this value, depending on the content being encoded as well as the specific implementation's quality