Liveflow is a flexible and modular live streaming solution designed for efficient real-time media stream handling. It supports a wide range of input and output formats, making it adaptable to various streaming needs.
- Modular Architecture: Each input and output module operates independently, allowing for easy extension and addition of new formats.
- Real-Time Processing: Optimized for processing live media streams with minimal latency.
- Powered by FFmpeg: Utilizes the robust FFmpeg library for comprehensive media processing capabilities.
HLS | WHEP | MKV | MP4 | |
---|---|---|---|---|
RTMP | ✅ | ✅ | ✅ | ✅ |
WHIP | ✅ | ✅ | ✅ | ✅ |
The system architecture can be visualized as follows:
+-------+ +-------+
| | | |
| RTMP | | |
|Input +-------> | |
| | | Hub |
+-------+ | +-----> Outputs
| | (WHEP,
+-------+ | | HLS, MP4, MKV)
| | | |
| WHIP +-------> | |
|Input | | |
+-------+ +-------+
- FFmpeg: Ensure FFmpeg is installed on your system as Liveflow relies on it for media processing.
- Install FFmpeg:
brew install ffmpeg # version 7
- Clone and build the repository:
git clone https://github.com/hsnks100/liveflow.git cd liveflow go build && ./liveflow
- Run Liveflow using Docker Compose:
docker-compose up liveflow -d --force-recreate --build
Start streaming by choosing from the following broadcast options:
- Server:
http://127.0.0.1:8044/whip
- Bearer Token:
test
- Server:
rtmp://127.0.0.1:1930/live
- Stream Key:
test
-
HLS:
- URL:
http://127.0.0.1:8044/hls/test/master.m3u8
- Viewer:
http://127.0.0.1:8044/m3u8player.html?streamid=test
- URL:
-
WHEP:
- URL:
http://127.0.0.1:8044/
- Bearer Token:
test
- Click the Subscribe button.
- URL:
-
MKV, MP4:
- Docker:
~/.store
- Local:
$(repo)/videos
- Docker:
This project is licensed under the MIT License. For more details, see the LICENSE file.