Skip to main content

Livepeer accepts live video via RTMP. A stream object holds the ingest configuration, transcoding profiles, and generates the HLS playback URL. The stream key embedded in the ingest URL authenticates the push; only a client with the correct key can publish to that stream.

Stream Creation

Create a stream via the SDK:
The same operation in Python:

Pushing a Stream

Point OBS to the ingest URL and stream key:
  • Server: rtmp://rtmp.livepeer.com/live
  • Stream Key: value of stream.streamKey
With FFmpeg:
The go-livepeer broadcaster Gateway also accepts RTMP on port 1935 when running in broadcaster mode, routing segments directly through the Livepeer Network without a managed API layer.

Transcoding Profiles

Each profile in the profiles array defines one output rendition. The Livepeer Network transcodes the ingest stream into each requested profile in parallel. Profile fields: The HLS manifest at stream.playbackUrl lists all renditions. ABR players select the appropriate rendition based on available bandwidth.

Stream Events

Livepeer fires webhooks on stream lifecycle events. Subscribe to events when creating a stream:
Or create a webhook subscription separately:
Key stream events:
All webhook payloads are signed with an HMAC-SHA256 signature using your webhook secret. Verify the Livepeer-Signature header before processing events.

VOD

Upload and transcode video-on-demand assets via the same SDK.

Video Overview

Access paths and workload comparison for Livepeer video.

Transcoding

Direct transcoding for applications managing their own segments.

Player

Embed the @livepeer/react Player component to play back HLS streams.
Last modified on May 31, 2026