Bunryu (分流, "branching flow"): one live stream, many destinations.
Self-hosted restreaming server for long live events. Take inputs over RTMP, SRT and bonded SRT, and forward each one to many RTMP/RTMPS/SRT destinations (YouTube, Facebook, Twitch, CDNs) from one Linux server. Watchdogs restart a failed output without affecting the others.
Built on official SRS for ingest, goryu for bonded SRT ingress, and FFmpeg for outputs, with a Node.js + TypeScript control plane, web dashboard and REST API.
| Install | Try with Docker | Documentation |
|---|

Features
- Ingest over RTMP, SRT and bonded SRT, with stream-key authorization and passphrase-protected SRT.
- Forward each input to many RTMP, RTMPS or SRT destinations: up to 50 inputs and 500 outputs per server. Copy-mode (passthrough) outputs cost almost no CPU.
- Transcode a few outputs to 720p, 1080p or a rotated vertical feed for Shorts/Reels, and select audio tracks per output, including multi-track SRT outputs. Outputs that need the same encode share one FFmpeg, so ten 720p outputs cost one encode, not ten.
- Mix translation audio (beta) from an interpreter's pipeline over the source, with speech detection, ducking, delay and restore timing. If the translator drops, the output continues with source audio.
- Recover automatically: stall, socket and memory watchdogs with bounded restarts. One failing destination never affects the others.
- Keep post-incident evidence: per-output Error History with FFmpeg stderr tails, grouped timestamp warnings, and rotated structured diagnostics.
- Watch everything in a live dashboard: HLS preview, ffprobe media details, bitrates, host and per-process CPU/RAM/network charts, and copy-ready publish URLs.
- Restart safely: SRS accepts publishes only once the control plane is ready, and all configuration persists in SQLite.

Quick start
Try it with Docker:
git clone https://github.com/live-miracles/bunryu
cd bunryu
docker compose up -d
docker compose logs bunryu | grep "dashboard password"
Open http://localhost:8080, log in with the printed password, create a pipeline and publish to the URL the dashboard shows.
Install on a server (Debian/Ubuntu, x86_64, systemd), the recommended setup for production:
sudo git clone https://github.com/live-miracles/bunryu /opt/bunryu
sudo bash /opt/bunryu/scripts/server-install.sh
The installer prints the dashboard password. See Native install for firewall ports, updates and the SRT passphrase, and Remote access for reaching the dashboard securely.
Documentation
- Getting started: Introduction · Docker · Native install
- Usage: Publishing · Outputs · Translation outputs (beta)
- Operations: Security · Remote access · Configuration · Reliability · Known issues
- Reference: REST API · Development
License
MIT. SRS, goryu and FFmpeg are separate projects under their own licenses.