demo · v141
RTP Stats Timing
Spin up a loopback peer connection, advance through the negotiation stages, and poll getStats() at each one. The panels show exactly when outbound-rtp entries appear — Chrome 141 aligns this to the spec's "track added" moment.
unstarted
track added
negotiated
probing RTCPeerConnection…
sender getStats (outbound-rtp expected after track)
—
receiver getStats (inbound-rtp after answer)
—
the rule
// Pre-141 (Chromium): outbound-rtp created only after first RTP packet.
// Other browsers: created when the track was added.
// 141 aligns Chromium to the spec — outbound-rtp exists as soon as the
// track is added, even before negotiation completes.
const stats = await pc.getStats();
for (const r of stats.values()) {
if (r.type === "outbound-rtp") console.log("track exists, ssrc=", r.ssrc);
}
see also
- WebRTC getStats RTP stats creation — feature index
- ChromeStatus entry
- Spec