WebRTC Metrics
A comprehensive overview of WebRTC statistics, derived calculations, extracted features, and observable signals, to better understand call quality, connectivity, and user experience in rtcStats
Resolution (feature)
Track-level video resolution features recording the delivered frame size and how much it varied under adaptation.
Description
Track-level features, extracted per video track into features_track.
These features summarize the frame size a video track actually delivered over its lifetime, and how much that size moved:
- commonWidth - the most common (mode) frame width observed.
- commonHeight - the most common (mode) frame height observed.
- minWidth - the smallest frame width observed.
- minHeight - the smallest frame height observed.
- maxWidth - the largest frame width observed.
- maxHeight - the largest frame height observed.
Extracted by the open-source rtcstats-features package.
Why it matters
A single "resolution" number hides the story. WebRTC adapts resolution continuously under CPU and bandwidth pressure, so what a user actually saw is a distribution, not a constant. commonWidth and commonHeight give you the resolution the track spent most of its time at, which is the honest headline figure. The min and max pair tells you the spread: a track that ran mostly at 1280x720 but dropped to 320x180 at its worst reveals adaptation you would miss if you only stored the mode.
Wide gaps between min and max are the signal to chase. They point at congestion, encoder overload, or quality-limitation events on the sending side. Split by codec, client version, or region and this becomes a clean way to find cohorts where video degrades under load.
Typical values
- Stable track:
min,common, andmaxdimensions all equal or close. - Adapting track:
commonnear the target,minwell below it during pressure. - A
maxWidth/maxHeightabove the negotiated cap usually points at a mid-call renegotiation or layer switch.
SQL example
Average delivered resolution and its downward spread for inbound video:
SELECT
AVG(track.common_width) AS avg_common_width,
AVG(track.common_height) AS avg_common_height,
AVG(track.common_width - track.min_width) AS avg_width_drop
FROM "rtcstats-server" AS server
JOIN features_metadata AS metadata ON metadata.dump_id = server.id
JOIN features_connection AS connection ON connection.dump_id = metadata.id
JOIN features_track AS track ON track.connection_id = connection.id
WHERE connection.connected -- only connections that reached 'connected'
AND track.kind = 'video' -- 'audio' or 'video'
AND track.direction = 'inbound'; -- 'inbound' or 'outbound'
Related features
- Quality limitation - the outbound reason a resolution was reduced.
See also
- rtcstats-server feature extraction - the full feature reference. These features are extracted by rtcstats-server and live in the open-source
rtcstats-featurespackage.