
livego
A simple Go server that receives live video over RTMP and plays it back as FLV or HLS.
- Stars
- 10.2k
- Forks
- 2k
- Licence
- MIT
- Language
- Go
- Last update
- 11 months ago
- Type
- App
What it is
livego is a live streaming server written in Go. You send it a live video feed using the RTMP protocol, often from broadcasting software or ffmpeg, and viewers can then watch it over RTMP, HTTP-FLV, or HLS. The README describes it as simple to install and cross-platform, with pre-built binaries and a Docker image available.
- Push a test video file to a local server with ffmpeg and play it back in a browser or player
- Run a local RTMP ingest point for a streaming setup and serve it as HLS
- Save incoming streams to FLV files using the flv_dir option
- Serve HLS over HTTPS by providing your own certificate files
Great for
- Developers who want to self-host a basic live streaming endpoint
- Hobbyists testing RTMP push and HLS playback locally
- Teams that need a small Go-based server they can read and modify
- People who want to keep streams on their own machines instead of a hosted service
Not ideal for
- Large public broadcasts that need a managed CDN, since the README describes no scaling or distribution features
- Non-technical users who want a point-and-click broadcasting tool, since setup and use happen on the command line
- Projects needing built-in authentication or recording beyond the options listed, since the README does not describe them
How to get it
- 1
Run with Docker
You'll need: Docker
Run with Docker
docker run -p 1935:1935 -p 7001:7001 -p 7002:7002 -p 8090:8090 -d gwuhaolin/livegoClone the source
git clone https://github.com/gwuhaolin/livego.gitBuild from source
go build - 2
Run it
- Start the server with Docker or by running the livego binary
- Get a channel key from http://localhost:8090/control/get?room=movie
- Push a video with ffmpeg to rtmp://localhost:1935/{appname}/{channelkey}
- Play the stream at http://127.0.0.1:7001/{appname}/movie.flv or http://127.0.0.1:7002/{appname}/movie.m3u8
- 3
Get the most out of it
- Use the --level option to change log verbosity
- Set use_hls_https to true in livego.yaml and provide server.key and server.crt to serve HLS over HTTPS
- Use --hls_keep_after_end to keep HLS output after a stream ends
- Use --flv_dir to save incoming streams as FLV files
- Pair the HTTP-FLV endpoint with flv.js for browser playback, as described in the linked guide
Downloads
Strengths
- The README describes it as simple to install: download a binary or run one Docker command
- Supports common protocols (RTMP, HTTP-FLV, HLS) and codecs (H264, AAC, MP3)
- Written in Go and released under the MIT license, so it is free to use and modify
Trade-offs
- The README is short and does not document production deployment, security, or scaling
- Stream keys are obtained from a local HTTP management endpoint, so you must secure that port yourself
- The README is truncated, so some details may be missing
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| livego (this) | 10.2k | App | intermediate | 11 months ago | Developers who want to self-host a basic live streaming endpoint |
| srs | 29.4k | App | intermediate | 6 days ago | Developers building live streaming backends that need several delivery protocols |
| mediamtx | 20.6k | App | intermediate | 4 days ago | People routing IP camera streams to viewers in a browser or media player |
| owncast | 11.6k | App | intermediate | 10 days ago | Streamers who want control over their content, interface and moderation |
| DPlayer | 16.5k | Library | intermediate | 8 months ago | Web developers who want an embeddable video player with scrolling comments |
| go2rtc | 14.6k | App | intermediate | 11 days ago | Home users connecting IP cameras to a browser or Home Assistant |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.