Packet pacing is a technique used in WebRTC to smooth out the transmission of media packets over time, rather than sending them in bursts.
Why packet pacing matters
Without pacing, an encoder might produce a large frame (especially a keyframe) and the sender would transmit all its packets at once, creating a burst that can:
- Overwhelm network buffers, causing packet loss
- Trigger incorrect congestion signals in the BWE algorithm
- Cause jitter spikes at the receiver
How packet pacing works in libWebRTC
The pacer in libWebRTC queues outgoing packets and transmits them at a controlled rate based on the current estimated bandwidth. Even if the encoder produces a large I-frame all at once, the pacer spreads its transmission over time. The pacer also handles prioritization between media types (audio over video) and between regular packets and retransmissions (RTX).
Packet pacing works closely with probing to discover available bandwidth without overwhelming the network.


