WebRTC Metrics
A comprehensive overview of WebRTC statistics, derived indicators, and observable signals, to better understand call quality, connectivity, and user experience in rtcStats
jitter(ms)
Packet Jitter measured in milliseconds for this SSRC.
Description
Real number; in milliseconds
Packet Jitter measured in seconds for this SSRC. Calculated as defined in RFC3550 section 6.4.1.
It is an estimate of the statistical variance of the RTP data packet interarrival time, measured in timestamp units.
For rtcStats, we convert the value from seconds to milliseconds to make it easier to read and understand.
This is the metric reported for the outgoing media stream from the remote peer. For the incoming metric see jitter.
Interpreting Values
| Range | Description | |-------|-------------| | <20ms | Excellent. Jitter buffer can handle this easily with minimal added latency | | 20-50ms | Acceptable. Jitter buffer compensates but adds some playout delay | | 50-100ms | Concerning. Noticeable increase in end-to-end latency as the jitter buffer grows | | >100ms | Severe. Audio artifacts likely even with jitter buffer compensation. Video playout becomes erratic |
This is jitter as measured by the remote receiver for packets YOU sent - it reflects your outbound path quality.
Common Causes
- Your upload network path has variable latency (packet spacing becomes uneven)
- WiFi interference causing retransmissions at the link layer
- Competing upload traffic creating queuing delays (bufferbloat)
- VPN overhead adding variable processing time per packet
- Cellular network handovers between towers
- Shared network with bursty traffic from other users or devices
User Experience Impact
- High jitter on your outbound means the remote peer's jitter buffer must grow, adding latency to your audio/video on their end
- The remote peer experiences increased end-to-end delay for your media
- Very high jitter leads to audio glitches - the jitter buffer cannot compensate and packets arrive too late to be played
- Video may stutter as frames arrive in bursts rather than smoothly
- Audio-video lip synchronization can drift when jitter affects audio and video streams differently
Troubleshooting
- Focus on your upload path quality - this is about packets you are sending
- Compare with inbound-rtp.jitter to check if the network is symmetric (both directions have jitter) or if jitter is one-directional
- Check WiFi signal strength if on wireless - poor signal causes link-layer retransmissions that increase jitter
- Reduce upload-heavy competing traffic (cloud sync, large uploads, torrents)
- If on a VPN, test without it to see if VPN processing adds variable delay
- Look for patterns - periodic jitter spikes often correlate with background application activity
See also
Notes
- The higher the jitter value is, the worse the media quality is expected to be and the bigger the playout delay will need to be to account for it
- WebRTC getStats() returns jitter in seconds. For the purpose of visualization, we convert it to milliseconds in rtcStats