Skip to main content
In-browser broadcasting sends live video from the user’s device to Livepeer over WebRTC (e.g. WHIP), without OBS. It is optimised for low latency by default.

Flow

  1. Create a stream via the API and get a stream key.
  2. Open a WebRTC connection to Livepeer ingest using that key (STUN/TURN required).
  3. Capture camera, microphone, and/or screen in the browser and send over WebRTC.
  4. Viewers watch via the stream playback ID in the Livepeer Player.

Using the Broadcast component

With @livepeer/react, use the Broadcast primitives and the stream ingest URL:

Embeddable broadcast

Replace STREAM_KEY with your stream key.

Custom WebRTC (WHIP)

  1. Send HEAD to https://livepeer.studio/webrtc/{STREAM_KEY} and follow the Location redirect for the ingest URL.
  2. Create RTCPeerConnection with ICE servers from that host (STUN/TURN).
  3. Create SDP offer, gather ICE, POST offer to ingest URL, set answer as remote description.
  4. Add media tracks and send. End of broadcast is detected when packets stop; no DELETE required.
STUN/TURN are required for in-browser broadcasting. The Broadcast component and lvpr.tv broadcast page use Livepeer’s servers.
See Playback and Optimise latency.
Last modified on April 8, 2026