Documentation Index
Fetch the complete documentation index at: https://na-36-handover-docs-v2-into-docs-v2-dev-20260518.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
LPMS (
livepeer/lpms) is a Go library providing RTMP ingest, HLS output, and FFmpeg-backed transcoding. It is the core media handling layer inside go-livepeer’s broadcaster node and is available independently for Go applications that need media server functionality.
LPMS can run as a standalone binary for testing or be imported as a library into a larger Go application.
Building LPMS
LPMS requires libavcodec (FFmpeg) and related libraries. Theinstall_ffmpeg.sh script installs all dependencies to ~/compiled:
Default Endpoints
The test LPMS server exposes:| Endpoint | Purpose |
|---|---|
rtmp://localhost:1935/stream/<id> | RTMP ingest: push a stream here |
http://localhost:7935/stream/<id>.m3u8 | HLS playback |
http://localhost:7935/stream/<id>/<profile>.m3u8 | Specific rendition |
Embedding LPMS
Import LPMS and configureLPMSOpts:
core/lpms.go for the full LPMSOpts fields including segment duration, manifest window size, and GOP configuration.
GPU Transcoding
LPMS exposes a GPU transcoding API using NVENC (encoding) and NVDEC (decoding) via FFmpeg’s hardware acceleration path. Select the processing mode and GPU device at runtime:cmd/transcoding/transcoding.go sample program demonstrates GPU selection via CLI flags and is the reference implementation for testing NVIDIA processing in an LPMS environment.
LPMS is the media layer embedded in go-livepeer. For the full Livepeer protocol with orchestrator discovery, probabilistic micropayments, and network routing, run go-livepeer in broadcaster mode instead of using LPMS directly.
Related Pages
Transcoding
Segment submission API and transcoding profile configuration for the broadcaster gateway.
Video Overview
Comparison of LPMS, broadcaster gateway, and managed SDK access paths.