Skip to content

Repository files navigation

MiroTalk BRO - Open Source Self-Hosted WebRTC Live Broadcasting Platform

WebRTC live broadcasting for real-time video, audio, and screen streaming to connected viewers.


GitHub Stars GitHub Forks

License: AGPLv3 Docker Pulls Last Commit Discord Author


MiroTalk BRO is a self-hosted, open-source platform for real-time live video, audio, and screen broadcasting to all connected viewers using WebRTC. Handles unlimited rooms with no time limits, each with one broadcaster and many viewers.

Try Live Demo Β· Documentation Β· Discord Β· Sponsor


MiroTalk BRO - WebRTC Live Broadcast



⚑ Quick start

mediasoup

If BROADCASTING=sfu, ensure you have all the requirements installed.

Requirements install example for Ubuntu 24.04 LTS

apt-get update
apt-get install -y build-essential
apt-get install -y python3 python3-pip

Start in 5 commands:

git clone https://github.com/miroslavpejic85/mirotalkbro.git
cd mirotalkbro
cp .env.template .env
npm install
npm start

Open http://localhost:3016 - done!

🐳 Docker

docker

Prerequisites: Install Docker Engine and Docker Compose - Image available on Docker Hub

git clone https://github.com/miroslavpejic85/mirotalkbro.git
cd mirotalkbro
cp .env.template .env
cp docker-compose.template.yml docker-compose.yml
docker-compose pull    # optional: pull official image
docker-compose up      # add -d to run in background

Open http://localhost:3016 - done!

Note: Edit .env and docker-compose.yml to customize your setup.

Camera backgrounds

In broadcaster Settings > Background, choose Off, Blur, or Image. Image backgrounds accept local PNG, JPEG, and WebP files up to 10 MB; images are not uploaded to the server.

Effects are processed in the broadcaster's browser and appear in the preview, P2P/SFU broadcasts, and recordings. Screen sharing bypasses effects and restores the selected background when returning to the camera. RTMP sources do not support browser camera effects.

Effects require WebGL2 and canvas stream capture. Blur also requires canvas filter support. The pinned MediaPipe runtime and WASM files (version 0.10.21) are lazy-loaded from jsDelivr, and the selfie model (version 1) is loaded from Google Storage on first use. Those hosts must be reachable and allowed by any custom CSP. Browsers can cache the assets normally. Initialization or processing failures show a warning and fall back to the camera without effects.

While effects are active, output is capped at 1280 x 720 and 15 FPS to limit processing cost. Off retains camera resolution and up to 60 FPS. Performance varies by device; keep the broadcaster tab visible to avoid browser throttling of canvas rendering.

πŸ“‘ RTMP upstream source

RTMP ingest lets a hardware encoder (Blackmagic ATEM, OSEE, OBS) act as the broadcaster. It requires SFU mode, FFmpeg, and MediaMTX.

Configure .env:

BROADCASTING=sfu
RTMP_ENABLED=true
RTMP_PUBLISH_TOKEN=my-secret-token
RTMP_SOURCE_URL=rtmp://127.0.0.1:1936
FFMPEG_PATH=ffmpeg
MEDIASOUP_ANNOUNCED_IP=127.0.0.1

127.0.0.1 is only valid when viewers run on the same host. For remote access or Docker behind NAT, set MEDIASOUP_ANNOUNCED_IP to the public IP address or hostname that viewers can reach and expose the configured mediasoup UDP/TCP port range.

With Docker, add the optional MediaMTX overlay (P2P deployments can skip it):

docker compose -f docker-compose.yml -f docker-compose-mediamtx.yml up -d

Without Docker, install the external tools (brew install ffmpeg mediamtx on macOS) and start MediaMTX and MiroTalk in separate terminals:

mediamtx mediamtx.yml
npm install
npm start

In OBS, choose Custom streaming service and use:

Server:     rtmp://localhost:1936/live
Stream key: ROOM_ID?token=my-secret-token

Then open http://localhost:3016/viewer?id=ROOM_ID&name=Viewer.

See the RTMP upstream guide for hardware encoder settings, remote deployments, security, and tuning.

πŸ“š Documentation

For detailed guides and references, visit the official documentation:

☁️ Recommended Hosting Providers
Provider Description Link
Hetzner High-performance cloud servers and dedicated root servers with top-tier reliability. Powers our live demo. Explore Hetzner
Netcup Enterprise-grade performance at unbeatable prices. Scalable and reliable. Explore Netcup
Hostinger Fast, reliable hosting with 24/7 support and great performance. Check out Hostinger
Contabo Top-tier German hosting, dedicated servers, VPS, and web hosting at unbeatable prices. Explore Contabo

To set up your own instance of MiroTalk BRO on a dedicated cloud server, please refer to our comprehensive self-hosting documentation.

🀝 Contributing

Contributions are welcome and greatly appreciated! Whether it's bug fixes, features, or documentation - every contribution helps.

  1. Fork the repository
  2. Create your feature branch
  3. Submit a pull request

Have questions? Join our Discord community!

πŸ“„ License

AGPLv3

MiroTalk BRO is free and open-source under the terms of AGPLv3 (GNU Affero General Public License v3.0). Please respect the license conditions, In particular modifications need to be free as well and made available to the public. Get a quick overview of the license at Choose an open source license.

To obtain a MiroTalk BRO license with terms different from the AGPLv3, you can conveniently make your purchase on CodeCanyon. This allows you to tailor the licensing conditions to better suit your specific requirements.

❀️ Support the project

Do you find MiroTalk BRO indispensable for your needs? Join us in supporting this transformative project by becoming a backer or sponsor. By doing so, not only will your logo prominently feature here, but you'll also drive the growth and sustainability of MiroTalk BRO. Your support is vital in ensuring that this valuable platform continues to thrive and remain accessible for all. Make an impact – back MiroTalk BRO today and be part of this exciting journey!


🌐 Explore the full MiroTalk suite (SFU, P2P, BRO, C2C, WEB, CME, ADM) β†’ MiroTalk Overview


Built with ❀️ by Miroslav and the open-source community

About

πŸ“‘ Open-source, self-hosted WebRTC live broadcasting platform for real-time video, audio, and screen streaming. Build your own broadcasting solution for webinars, events, presentations, announcements, and live online communication without relying on a hosted video platform.

Topics

Resources

Code of conduct

Security policy

Stars

210 stars

Watchers

5 watching

Forks

Sponsor this project

Used by

Contributors

Languages