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.

Open 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

  1. Open a new Chrome tab.
  2. Go to chrome://webrtc-internals.
  3. Start your WebRTC viewer, publisher, TURN test, or live stream page.
  4. Watch for a new RTCPeerConnection section.
  5. Review ICE candidates, selected candidate pairs, bitrate, packet loss, codecs, and frame stats.
  6. 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 TypeMeaning
hostLocal device or LAN candidate.
srflxServer-reflexive candidate discovered through STUN.
relayTURN 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

ProblemWhat to Check
No videoCheck bytesReceived, framesDecoded, frameWidth, and codec info.
TURN not workingCheck for relay candidates and the selected candidate pair.
Stream freezesCheck packetsLost, RTT, bitrate drops, and ICE reconnects.
Black screen but connectedIf bytes increase but frames stay at zero, media may be arriving but decode may be failing.
VPN or firewall issuesLook 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

ToolBest For
HAR fileHTTP requests, API calls, DNS timing, TLS timing, CDN behavior, and failed web resources.
webrtc-internalsWebRTC media stats, ICE candidates, TURN relay usage, packet loss, bitrate, codecs, and RTP behavior.
Wireshark or packet capturePacket-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

Back to Nerd ITs Home Site News Open TURN Test Open HAR Analyzer