GNU Affero General Public License v3.0

项目介绍

miroslavpejic85/mirotalkbro 是一个托管在 GitHub 上的开源项目,主要使用 JavaScript 编写,采用 GNU Affero General Public License v3.0 许可证,目前获得 212 个 Star、55 次 Fork。

仓库全名
miroslavpejic85/mirotalkbro
开源许可证
GNU Affero General Public License v3.0
Star 数
212
Fork 数
55
未关闭 Issue
1

README 摘要

MiroTalk BRO - Open Source Self-Hosted WebRTC Live Broadcasting Platform WebRTC live broadcasting for real-time video, audio, and screen streaming to connected viewers. 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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

mirotalkbro 用什么语言开发?

主要使用 JavaScript 编写,采用 GNU Affero General Public License v3.0 许可证,目前有 212 个 Star。

mirotalkbro 可以免费商用吗?

仓库标注的许可证为 GNU Affero General Public License v3.0,商用前请先阅读仓库 LICENSE 文件确认授权范围。

如何获取 mirotalkbro 的源码?

可以直接克隆仓库:git clone https://github.com/miroslavpejic85/mirotalkbro.git,默认分支为 main;安装与运行步骤见仓库 README。

mirotalkbro 最近还在维护吗?

仓库最近一次更新为 2 天前,当前有 1 个未关闭 Issue;Star 数为 212,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

📡 Self-hosted open-source WebRTC live broadcasting platform for real-time video, audio, and screen streaming to unlimited connected viewers.

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

语言占比

CSS
Dockerfile
HTML
JavaScript
PHP
Python
Shell

README

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
cp public/js/config.template.js public/js/config.js
npm install
npm start

Open http://localhost:3016 - done!

Note: Edit .env for server settings and public/js/config.js to customize the UI (buttons, options, simulcast, SFU tuning). If public/js/config.js is missing, public/js/config.template.js is served instead.

🐳 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
cp public/js/config.template.js public/js/config.js
docker-compose pull    # optional: pull official image
docker-compose up      # add -d to run in background

Open http://localhost:3016 - done!

Note: Edit .env, docker-compose.yml and public/js/config.js 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

评论

暂无评论