How to Use chrome://webrtc-internals for WebRTC Debugging
WebRTC can fail in ways that are hard to diagnose from the player alone. A stream may connect but show no video,
TURN relay may fail, packet loss may increase during playback, or bitrate may suddenly drop. Chrome includes a
built-in diagnostics page called chrome://webrtc-internals that helps expose what is happening inside
the browser.
chrome://webrtc-internals before starting your WebRTC publisher or viewer session.
Leave it open while testing so Chrome can record the peer connection events and stats.
What webrtc-internals Shows
The page logs peer connections, ICE candidates, SDP offers and answers, TURN/STUN usage, bitrate, packet loss, video resolution, frame rates, codec information, audio levels, and connection state changes.
Recommended Workflow
- Open a new Chrome tab.
- Go to
chrome://webrtc-internals. - Start your WebRTC viewer, publisher, TURN test, or live stream page.
- Watch for a new
RTCPeerConnectionsection. - Review ICE candidates, selected candidate pairs, bitrate, packet loss, codecs, and frame stats.
- Use Create Dump before refreshing the page if you need to save the debug data.
ICE Candidates
ICE candidates show how the browser is trying to connect. The most common candidate types are:
| Candidate Type | Meaning |
|---|---|
host | Local device or LAN candidate. |
srflx | Server-reflexive candidate discovered through STUN. |
relay | TURN relay candidate. This is important for strict NATs and firewalls. |
Selected Candidate Pair
The selected candidate pair is the active network path chosen by ICE. Search for:
selected candidate pair changed
If the selected local or remote candidate type is relay, that confirms TURN relay is active.
This is useful when testing strict firewalls, VPN paths, and mobile networks.
Bitrate and Bandwidth
For bitrate and bandwidth behavior, search for:
availableOutgoingBitrate bytesSent bytesReceived
Packet Loss
Packet loss can cause freezing, quality drops, audio gaps, or stream instability. Search for:
packetsLost fractionLost
High packet loss can point to weak Wi-Fi, congestion, VPN routing problems, firewall inspection, bad TURN relay paths, or encoder/network overload.
Resolution and Frame Rate
To check video quality and decode behavior, search for:
frameWidth frameHeight framesPerSecond framesDecoded
Codec Information
Search for mimeType to confirm codec negotiation. Common values include:
video/H264 video/VP8 video/VP9 video/H265 audio/opus
SDP Inspection
Expand setLocalDescription and setRemoteDescription to inspect the SDP offer and answer.
SDP is useful for checking codec negotiation, simulcast layers, ICE parameters, RTP header extensions, BUNDLE setup,
and transport configuration.
Common Problems and What to Check
| Problem | What to Check |
|---|---|
| No video | Check bytesReceived, framesDecoded, frameWidth, and codec info. |
| TURN not working | Check for relay candidates and the selected candidate pair. |
| Stream freezes | Check packetsLost, RTT, bitrate drops, and ICE reconnects. |
| Black screen but connected | If bytes increase but frames stay at zero, media may be arriving but decode may be failing. |
| VPN or firewall issues | Look for relay-only fallback, packet loss spikes, high RTT, reconnects, or ICE failures. |
Exporting Logs
At the top of chrome://webrtc-internals, click Create Dump to download a full debug file.
Save this before refreshing or closing the tab.
HAR Files vs. webrtc-internals
| Tool | Best For |
|---|---|
| HAR file | HTTP requests, API calls, DNS timing, TLS timing, CDN behavior, and failed web resources. |
webrtc-internals | WebRTC media stats, ICE candidates, TURN relay usage, packet loss, bitrate, codecs, and RTP behavior. |
| Wireshark or packet capture | Packet-level network analysis, UDP flows, firewall behavior, and deeper media transport debugging. |
Useful Search Terms
relay candidate pair packetsLost framesDecoded bytesReceived availableOutgoingBitrate currentRoundTripTime codec mimeType
Final Tips
- Open
webrtc-internalsbefore starting the stream. - Keep only one test active at a time for cleaner logs.
- Compare VPN on/off behavior when troubleshooting routing issues.
- Use TURN relay tests for strict firewall scenarios.
- Export the dump before refreshing the page.
- Use HAR files and
webrtc-internalstogether for a fuller picture.