WebRTC Tool direct peer-to-peer audio, video, chat, and files
disconnected

WebRTC Tool

A direct peer-to-peer call tool — a fallback for video, screen share, chat, and file transfer when your usual conferencing software isn't cooperating. Connect to one or more participants either via a shared room code (using a small relay server that only shuttles the offer/answer) or by pasting two short JSON blobs. Browser-only on each end: no install, no account.

Shown to other participants in chat and on their video tile. Saved locally; can be changed later from the call's Settings tab.

Opens an empty call. Invite participants from inside the call (room code or SDP paste).

Tools

Paste an offer/answer (raw SDP, JSON, or b64:-wrapped) and see it broken down into sections, codecs, ICE candidates, and DTLS info — with short explanations.

Configure

Set up media and ICE servers, then continue to the signaling step.

Signaling

Both peers enter the same short room code on a small relay server that just shuttles the offer/answer pair. The server never sees media or chat — those still flow peer-to-peer. Whoever opens the room first becomes the initiator; the second peer joins. The relay holds each blob for 10 minutes and forgets it after.

Advanced

Hard cap on how long the page waits for ICE candidate gathering before exporting the SDP. Use 0 to wait indefinitely — useful when you want every candidate (e.g. slow TURN relays) but expect to abort manually if gathering stalls. Default is 8 seconds.

ICE / TURN servers

Leave the STUN default for typical LAN/internet use. Add TURN servers for cross-NAT peers. Empty list means fully-local (host candidates only) — works on the same LAN or same machine.

LAN connectivity

For privacy, browsers (especially Firefox) restrict WebRTC ICE candidates to the default network interface while no microphone or camera stream is active on the page. If both peers are on the same network and you don't have a TURN server, enabling this opens a muted microphone stream (no audio is captured or sent) so the ICE agent can see all your local interfaces and direct LAN candidates can be exchanged. The OS will indicate the microphone is in use; stop it from here, the toolbar, or by hanging up.

off

Media

Munged into the offer/answer SDP at signaling time. These can only be set here — they are locked once the call is up and cannot be changed mid-call.

Reorders this side's SDP to ask the peer to encode with this codec when sending to you. Influences what the peer sends, not what you send.

Pins the encoder used when sending video (both camera and screen share). Picks from the codecs negotiated with the peer; falls back to the browser default if the codec isn't available. Can also be changed mid-call from the runtime panel.

If video freezes after a few seconds, try a different send codec — some browser/device combinations have buggy encoders (notably VP8 on Firefox Android).

Advanced Opus settings (SDP)

Negotiate a 2-channel Opus stream. Only useful if the capture device is actually stereo — otherwise the second channel just duplicates the first and wastes bitrate.

Forward error correction. The encoder embeds a low-bitrate copy of each frame inside the next one so the decoder can reconstruct single-packet losses without a retransmit. Costs a few percent bitrate.

Discontinuous transmission: the encoder stops sending packets during silence and the decoder fills in comfort noise. Saves bandwidth on quiet channels; can cut off very soft speech.

Force a constant bitrate instead of letting Opus vary it with content complexity. Mostly useful when something downstream expects a steady rate; usually leave off.

Upper bound the encoder targets on average. Set lower to save bandwidth on weak links; leave at 0 to let Opus pick (typically 32–64 kbps for speech, higher for music).

Signaling exchange

Step 1

Step 2

Add participant

Set up one new pairwise connection. Each participant you add is independent — chat and files fan out to everyone connected to you.

Your role for this connection

Working…