Skip to main content
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/orchestrators-portal.json
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 for details.

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

Network Configuration

Transcoding Settings

Production Considerations

Last modified on March 9, 2026