Livepeer Media Server (LPMS): the embeddable Go library for RTMP ingest, HLS output, and GPU-accelerated transcoding.
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.
For NVIDIA GPU support, a Pascal or later GPU and the NVIDIA CUDA toolkit are required. The build system detects GPU capability automatically when CUDA is on the path.
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:
The 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.