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

Back
trackvideoadvancedexperimentall4s

Advanced signals (feature)

Advanced and experimental track-level features: L4S ECN packet marking, objective PSNR quality sums, and null video decoder detection.

Description

Track-level features, extracted per track into features_track. These are advanced and experimental signals; availability varies by browser and build.

L4S and ECN (explicit congestion notification) marking:

Objective quality (PSNR):

  • psnrMeasurements - number of frames measured for PSNR.
  • psnrSumY - cumulative PSNR sum for the luma (Y) plane.
  • psnrSumU - cumulative PSNR sum for the U chroma plane.
  • psnrSumV - cumulative PSNR sum for the V chroma plane.

Decoder health:

  • hasNullVideoDecoder - boolean, whether a null video decoder was used at any point (no real decoding happened).

Extracted by the open-source rtcstats-features package.

Why it matters

These are frontier signals, useful when you are validating new stack behavior rather than running everyday dashboards. L4S is a low-latency congestion scheme: comparing packetsSentWithEct1 against packetsReceivedWithCe and packetsWithBleachedEct1Marking tells you whether the network path honored the ECN marks or stripped them, which decides whether L4S is actually doing anything for your users.

PSNR gives an objective, reference-based quality number. Divide a plane sum such as psnrSumY by psnrMeasurements for a mean PSNR, mostly interesting in lab or test-call conditions where you control the source. hasNullVideoDecoder is a correctness flag: if it is true, video was not really being decoded, which usually points at a test harness or a broken configuration rather than a live user experience.

Treat everything here as advanced. Confirm the field is populated in your browser mix before building on it.

SQL example

Check L4S mark survival and mean luma PSNR for inbound video, where present:

SELECT
  SUM(track.packets_received_with_ect1)          AS ect1_received,
  SUM(track.packets_received_with_ce)            AS ce_received,
  SUM(track.packets_with_bleached_ect1_marking)  AS ect1_bleached,
  SUM(track.psnr_sum_y) / NULLIF(SUM(track.psnr_measurements), 0) AS mean_psnr_y
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'

See also