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
clientgetdisplaymediascreensharecapture

getDisplayMedia (feature)

Client-level features recording whether and how screen sharing was requested, and how often it succeeded or failed.

Description

Client-level features, extracted per session into features_client.

These features record how the application used getDisplayMedia, the API that requests screen, window, or tab capture for screen sharing. rtcstats-server derives them from the client trace:

  • calledGetDisplayMedia - whether getDisplayMedia was called at least once.
  • calledGetDisplayMediaAudio / calledGetDisplayMediaVideo - whether audio and/or video capture was requested.
  • getDisplayMediaErrorCount - how many calls failed.
  • getDisplayMediaSuccessCount - how many calls succeeded.

Why it matters

Screen sharing is a high-intent action: a user reaches for it in the middle of a call, so a failure there is far more visible than a failure users never see. These features let you measure screen-share adoption (what share of sessions even call getDisplayMedia) alongside its failure rate, the exact parallel to the getUserMedia funnel. A rising getDisplayMediaErrorCount, or a success ratio that drops after a browser update, points at a picker or permissions regression on the sharing path specifically, which you would otherwise miss because most of your capture monitoring watches the camera and microphone path.

SQL example

Screen-share adoption and failure rate, last 7 days:

SELECT
  COUNT(*) FILTER (WHERE client.called_get_display_media)::float
    / NULLIF(COUNT(*), 0) AS adoption_rate,
  SUM(client.get_display_media_error_count)::float
    / NULLIF(SUM(client.get_display_media_error_count + client.get_display_media_success_count), 0)
    AS failure_rate
FROM "rtcstats-server" AS server
JOIN features_metadata AS metadata ON metadata.dump_id = server.id
JOIN features_client   AS client   ON client.dump_id   = metadata.id
WHERE server.created_at > NOW() - INTERVAL '7 days';

Related features

  • getUserMedia - the camera and microphone capture funnel this one parallels.

See also