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
- Create a stream via the API and get a stream key.
- Open a WebRTC connection to Livepeer ingest using that key (STUN/TURN required).
- Capture camera, microphone, and/or screen in the browser and send over WebRTC.
- 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)
- Send
HEAD to https://livepeer.studio/webrtc/{STREAM_KEY} and follow the Location redirect for the ingest URL.
- Create
RTCPeerConnection with ICE servers from that host (STUN/TURN).
- Create SDP offer, gather ICE, POST offer to ingest URL, set answer as remote description.
- 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.