Skip to main content
Page is under construction.
Feedback Welcome!
Ugh I hate this page. I think its best to move everything to quickstart and have this be a comprehensive flag overview

TL;DR Configuration

If you just want a working video gateway, use the below command:
Replace with your locally running orchestrator http address.
Off-Chain Video Gateway
livepeer -gateway \
  -network offchain \
  # Minimum required video flags
  -rtmpAddr=0.0.0.0:1935 \
  -httpAddr=0.0.0.0:8935 \
  -transcodingOptions=P240p30fps16x9,P360p30fps16x9 \
  # You will need to add your local orchestrator address if you are running off-chain
  -orchAddr=<ORCHESTRATOR_ADDRESSES> #comma separated list of orchestrator addresses
  # Example: -orchAddr=http://192.168.1.100:8935,http://192.168.1.101:8935
  # You can also use a JSON file: -orchAddr=/path/to/orchestrators.json
/snippets/assets/logos/Livepeer-Logo-Symbol-Light.svg
OVERVIEW
/snippets/assets/logos/Livepeer-Logo-Symbol-Light.svg
Gateways for Video Transcoding In traditional video transcoding, the Gateway ingests video streams via RTMP or HTTP, segments them, and distributes transcoding work to Orchestrators

Code Reference

go-livepeer/core/livepeernode.go

Essential Configuration Flags

Required Flags

-gateway
boolean
default:"false"
required
Enable Gateway mode
-network
string
default:"offchain"
Set to the blockchain network for production gateways arbitrum-one-mainnet
-orchAddr
string
default:"none"
required
Set to http://<ORCHESTRATOR_IP>:<PORT> to connect to orchestrators

Network Configuration

-rtmpAddr
string
default:"127.0.0.1:1935"
Set to 0.0.0.0:1935 to allow external RTMP connections
-httpAddr
string
default:"127.0.0.1:8935"
Set to 0.0.0.0:8935 to allow external HLS/API access

Transcoding Configuration

-transcodingOptions
string
default:"P240p30fps16x9,P360p30fps16x9"
Set to path/to/transcodingOptions.json to use a custom transcoding configuration

Additional On-Chain Flags

Add these flags for on-chain configuration. See On-Chain Setup Guide for details.
-network
string
default:"offchain"
-maxPricePerUnit
int
default:"0"
-ethUrl
string
default:"none"
required
-ethAcctAddr
string
default:"leave empty to auto-create"
-ethPassword
string
default:"leave empty to auto-create"
-ethKeystorePath
string
default:"leave empty to auto-create"
/snippets/assets/logos/Livepeer-Logo-Symbol-Light.svg
FULL CONFIGURATION GUIDE
/snippets/assets/logos/Livepeer-Logo-Symbol-Light.svg

Comprehensive Configuration Guide

Configuration Methods

You have three ways to configure your Livepeer gateway after installation:
  • Command-line flags (most common)
  • Environment variables (prefixed with LP_)
  • Configuration file (plain text key value format)

Configuration Examples

The below examples show the most common configuration methods.
.
livepeer -gateway \
  -network offchain \
  -transcodingOptions=${env:HOME}/.lpData/offchain/transcodingOptions.json \
  -orchAddr=0.0.0.0:8935 \
  -httpAddr=0.0.0.0:9935 \
  -v=6
Create docker-compose.yml
# 1. Create a basic docker-compose.yml
cat > docker-compose.yml << EOF
version: '3.9'
services:
  gateway:
    image: livepeer/go-livepeer:master
    ports:
      - 1935:1935  # RTMP ingest
      - 8935:8935  # HLS/API
    volumes:
      - gateway-data:/root/.lpData
    command: |
      -gateway
      -network arbitrum-one-mainnet
      -rtmpAddr=0.0.0.0:1935
      -httpAddr=0.0.0.0:8935
      -orchAddr=https://orchestrator.example.com:8935
      -transcodingOptions=P240p30fps16x9,P360p30fps16x9,P720p30fps16x9
      -ethUrl <YOUR_RPC_URL> \
      -ethAcctAddr <YOUR_ETH_ADDRESS> \
      -ethPassword <YOUR_PASSWORD> \
      -ethKeystorePath <KEYSTORE_PATH> \
      -maxPricePerUnit 1000

volumes:
  gateway-data:
EOF
Start the Gateway
Start the gateway
# 2. Start the gateway
docker-compose up -d
livepeer -gateway \
  -network arbitrum-one-mainnet \
  -ethUrl=<YOUR_RPC_URL> \
  -ethAcctAddr=<YOUR_ETH_ADDRESS> \
  -ethPassword=<YOUR_PASSWORD> \
  -ethKeystorePath=<KEYSTORE_PATH> \
  -maxPricePerUnit=1000 \
  -orchAddr=<ORCHESTRATOR_ADDRESSES> \
  -monitor=true

Transcoding Options JSON

Livepeer supports JSON configuration files for transcoding options through the -transcodingOptions flag. The transcodingOptions.json file lets you precisely control the encoding ladder. This file is a custom configuration file containing an array of rendition objects that defines which renditions (resolutions + bitrates) your Gateway will produce for each incoming stream. It overrides the default built-in ladder (e.g., P240p30fps16x9, etc.).
transcodingOptions.json example
[
  {
    // required
    "bitrate": 1600000,
    "width": 854,
    "height": 480,
    // optional
    "name": "480p0",
    "fps": 0,
    "profile": "h264constrainedhigh",
    "gop": "1"
  },
  {
    // required
    "bitrate": 3000000,
    "width": 1280,
    "height": 720,
    // optional
    "name": "720p0",
    "fps": 0,
    "profile": "h264constrainedhigh",
    "gop": "1"
  },
  {
    // required
    "bitrate": 6500000,
    "width": 1920,
    "height": 1080,
    // optional
    "name": "1080p0",
    "fps": 0,
    "profile": "h264constrainedhigh",
    "gop": "1"
  }
]

Notes

  • JSON configuration only applies to transcoding options, not other gateway flags
  • The file must contain valid JSON with the specified structure
  • All fields are optional except width, height, and bitrate
  • You can mix JSON configuration with other command-line flags

Next Step: Pricing Configuration

Configure pricing for your gateway.

Full Configuration Flag Reference

Essential Changes

No headers provided

Network Configuration

No headers provided

Transcoding Settings

No headers provided

Production Considerations

No headers provided
Last modified on January 13, 2026