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
- An Eyevinn OSC account
- An encoder that can push RTMP (e.g. OBS Studio, FFmpeg, or GStreamer)
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