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
remote-inbound-rtpoutboundaudiovideo

roundTripTime(ms)

Estimated round trip time for this SSRC based on the RTCP timestamps in the RTCP Receiver Report (RR) and measured in milliseconds.

Description

Real number; in milliseconds

Estimated round trip time for this SSRC based on the RTCP timestamps in the RTCP Receiver Report (RR) and measured in seconds. Calculated as defined in section 6.4.1. of RFC3550.

MUST NOT exist until a RTCP Receiver Report is received with a DLSR value other than 0 has been received.

Interpreting Values

| Range | Description | |-------|-------------| | <50ms | Excellent. Low-latency, natural conversation | | 50-150ms | Acceptable for most voice and video calls | | 150-300ms | Noticeable delay. Users begin to talk over each other | | >300ms | Problematic. Natural conversation becomes difficult |

  • This is measured per-SSRC via RTCP, so it may differ slightly from the ICE-level RTT (candidate-pair.currentRoundTripTime)
  • Audio and video SSRCs may report slightly different RTT values due to different RTCP report timing

Common Causes

  • Geographic distance between peers
  • TURN relay overhead adding extra hops
  • Network congestion along the media path
  • Routing inefficiency - packets taking suboptimal paths through the network

User Experience Impact

  • Same as general RTT - conversational delay and talking over each other
  • Audio and video from the remote side appear delayed
  • Interactive activities (screen sharing with discussion, collaborative work) become frustrating
  • High RTT combined with jitter is worse than high RTT alone - at least consistent delay is predictable

Troubleshooting

  • Compare with candidate-pair.currentRoundTripTime - they should be in the same range. A large discrepancy may indicate RTCP processing delays or measurement timing differences
  • Check roundTripTimeMeasurements to see if enough samples exist for a reliable measurement - very few measurements mean the value may not be representative
  • If this RTT is significantly higher than ICE-level RTT, investigate RTCP feedback path issues
  • For per-stream RTT differences, check if audio and video use the same candidate pair

See also

Notes

  • WebRTC getStats() returns totalRoundTripTime in seconds. For the purpose of visualization, we convert it to milliseconds in rtcStats