Getting Started

Livego is a lightweight live video streaming server written in Go. It accepts RTMP streams from encoders (OBS, FFmpeg, etc.) and re-serves them over RTMP, HTTP-FLV, and HLS, making it easy to run a self-hosted live streaming backend. Available as an open web service in Eyevinn Open Source Cloud.

Prerequisites

Step 1: Create a Livego instance

Navigate to the Livego service page and click Create livego. Enter a name (alphanumeric, no spaces) and click Create.

Wait for the instance status to turn green.

Step 2: Get a channel key

Livego uses a channel key to authenticate incoming RTMP streams. Obtain a key for a room name (e.g. mystream) by calling the control API:

curl "https://<instance-url>/control/get?room=mystream"

The response contains a key value — use this as the stream key in your encoder. Each room has its own key; you can create as many rooms as you need.

Step 3: Push a stream

Configure your encoder to push RTMP to:

rtmp://<instance-url>/live/<key>

Replace <key> with the value from Step 2.

OBS Studio: 1. Go to Settings → Stream 2. Set Service to Custom 3. Set Server to rtmp://<instance-url>/live 4. Set Stream Key to the key from Step 2

FFmpeg:

ffmpeg -re -i input.mp4 \
  -c:v libx264 -preset veryfast -c:a aac \
  -f flv rtmp://<instance-url>/live/<key>

Step 4: Play the stream

Once a stream is pushed, viewers can watch it over:

Protocol URL
RTMP rtmp://<instance-url>/live/<room>
HTTP-FLV https://<instance-url>/live/<room>.flv
HLS https://<instance-url>/hls/<room>.m3u8

Replace <room> with the room name used in Step 2 (e.g. mystream).

CLI usage

osc create gwuhaolin-livego mystream

List your running instances:

osc list gwuhaolin-livego

Remove an instance when you no longer need it:

osc remove gwuhaolin-livego mystream

Resources