P2P Video Call

About this project

This is a minimal, browser-based video calling tool for two people. No accounts, no app installs, no plug-ins — open the page, share the link, and talk. It is built on top of WebRTC, the open standard for real-time audio and video in the browser.

Why it exists

Most modern video calls are routed through corporate cloud infrastructure: your camera feed travels to a remote data center, is decoded, re-encoded, mixed, and sent back to the other participant. That makes group calls possible at scale, but it also means a third party always sits between you and the person you are talking to.

For a one-on-one conversation, none of that is necessary. Two browsers can talk to each other directly using WebRTC, with the server only doing the initial handshake. The result is lower latency, better quality on a good connection, and a much simpler privacy story.

This project was built as a small demonstration of how lean a modern video call can be: a single static HTML page, a tiny WebSocket signaling server in Node.js, and the WebRTC stack already living in your browser.

How it works (in plain English)

  1. You open the page. The browser generates a random room ID and adds it to the URL after the #.
  2. You share that link with the other person.
  3. When you click Join, your browser opens a WebSocket connection to the signaling server and asks to enter that room.
  4. When the second browser joins the same room, the server tells both sides "you can connect now."
  5. The two browsers exchange a small amount of network information (an "offer" and an "answer") through the server.
  6. After that, the call goes directly between the two browsers. The server is no longer in the path of your audio or video.

WebRTC media is encrypted by default using DTLS-SRTP, so even on the rare cases where a TURN relay must forward your packets (for example through a strict corporate firewall), the relay cannot decrypt them.

What it can do

What it does not do

The technology

Contact

Questions, bug reports, or feedback: sumanbhadrasuman@gmail.com.