Files
mirotalk/README.md
T
2026-04-09 13:44:54 +02:00

556 lines
30 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 align="center">MiroTalk P2P</h1>
<h3 align="center">Open Source WebRTC P2P Video Conferencing You Can Self-Host in Minutes</h3>
<h4 align="center">Free, Secure, Fast Real-Time Communication - up to 8K, 60fps. Works in All Browsers and Platforms.</h4>
<br />
<div align="center">
[![GitHub Stars](https://img.shields.io/github/stars/miroslavpejic85/mirotalk?style=social)](https://github.com/miroslavpejic85/mirotalk/stargazers)
[![GitHub Forks](https://img.shields.io/github/forks/miroslavpejic85/mirotalk?style=social)](https://github.com/miroslavpejic85/mirotalk/network/members)
<a href="https://choosealicense.com/licenses/agpl-3.0/">![License: AGPLv3](https://img.shields.io/badge/License-AGPLv3_Open_Source-blue.svg)</a>
<a href="https://hub.docker.com/r/mirotalk/p2p">![Docker Pulls](https://img.shields.io/docker/pulls/mirotalk/p2p)</a>
<a href="https://github.com/miroslavpejic85/mirotalk/commits/master">![Last Commit](https://img.shields.io/github/last-commit/miroslavpejic85/mirotalk)</a>
<a href="https://discord.gg/rgGYfeYW3N">![Discord](https://img.shields.io/badge/Discord-Community-5865F2?logo=discord&logoColor=white)</a>
<a href="https://www.linkedin.com/in/miroslav-pejic-976a07101/">![Author](https://img.shields.io/badge/Author-Miroslav_Pejic-brightgreen.svg)</a>
</div>
<br />
<p align="center"><strong>MiroTalk P2P</strong> is a <strong>self-hosted, open-source video conferencing</strong> platform using direct <strong>peer-to-peer WebRTC connections</strong> for fast, secure, real-time communication. Deploy on your own server in minutes. Enjoy unlimited rooms, no time limits, end-to-end privacy, and a rich feature set - all under your control.</p>
<p align="center">
<a href="https://p2p.mirotalk.com"><img src="https://img.shields.io/badge/🚀_Try_Live_Demo-blue?style=for-the-badge" alt="Try Live Demo"></a>
&nbsp;
<a href="https://docs.mirotalk.com/mirotalk-p2p/self-hosting/"><img src="https://img.shields.io/badge/📖_Documentation-green?style=for-the-badge" alt="Documentation"></a>
&nbsp;
<a href="https://discord.gg/rgGYfeYW3N"><img src="https://img.shields.io/badge/💬_Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"></a>
&nbsp;
<a href="https://github.com/sponsors/miroslavpejic85"><img src="https://img.shields.io/badge/❤️_Sponsor-ea4aaa?style=for-the-badge" alt="Sponsor"></a>
</p>
<br />
<p align="center">
<a href="https://p2p.mirotalk.com/">
<img src="public/images/mirotalk-header.gif" alt="MiroTalk P2P - Open Source Video Conferencing">
</a>
</p>
<p align="center"><strong>Proudly sponsored by</strong></p>
<hr />
<h1 align=center>Recall.ai - API for meeting recording</h1>
<p align="center">
<a href="https://www.recall.ai/?utm_source=github&utm_medium=sponsorship&utm_campaign=miroslavpejic85-mirotalk"><strong>Recall.ai</strong></a> an API for recording Zoom, Google Meet, Microsoft Teams, and in-person meetings.
</p>
<hr />
<br />
<details open>
<summary>✨ Why MiroTalk P2P?</summary>
<br/>
| | MiroTalk P2P | Other Solutions |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| 💰 **Cost** | Free & Open Source (AGPLv3). [One-time fee licenses](https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661) available | Paid plans |
| 🏠 **Self-hosted** | ✅ Full control over your data | ❌ Cloud only |
| 🔒 **Privacy** | Your server, your rules | Third-party data processing |
| ⏱️ **Time limits** | Unlimited | 40-60 min on free tiers |
| 🏢 **Rooms** | Unlimited concurrent rooms | Limited |
| 🎥 **Resolution** | Up to 8K @ 60fps | Up to 1080p |
| 🌍 **Languages** | 133 languages | ~30-80 |
| 🔌 **API** | Full REST API included | Paid add-on |
| 🤖 **AI Features** | ChatGPT (OpenAI) integration | Paid AI add-ons |
| 🧩 **Customization** | Full source code, white-label ready | Limited branding options |
| 📦 **Deployment** | Docker, Node.js, one-click install | N/A (SaaS only) |
</details>
<details open>
<summary>🚀 Features</summary>
<br/>
**Core Platform**
- `100% Free` · `Open Source (AGPLv3)` · `Self-Hosted` · [PWA](https://en.wikipedia.org/wiki/Progressive_web_application)
- No downloads, plugins, or logins required - completely browser-based
- Unlimited conference rooms with no time limits
- Compatible with all major browsers, desktop, and mobile devices
- Translated into 133 languages
**Video & Audio**
- Video quality up to 8K with webcam streaming (front & rear camera on mobile)
- Crystal-clear audio with speaking detection and volume indicators
- Screen sharing for presentations
- Video/Document Picture-in-Picture (PiP)
- Snapshot video frames as PNG images
- Push-to-talk (walkie-talkie mode)
- Choose audio input, output, and video source
**Recording**
- Record screen, audio, and video
**Collaboration**
- Chat with emoji picker, private messages, Markdown support, and conversation export
- Advanced collaborative whiteboard
- Real-time YouTube embeds, video files (MP4, WebM, OGG), and audio (MP3)
- File sharing with drag-and-drop
**AI-Powered**
- ChatGPT (OpenAI) for Q&A, information, and resource discovery
- Speech recognition - control the app with your voice
**Security & Access**
- OpenID Connect (OIDC) authentication
- Host protection & user auth to prevent unauthorized access
- JWT-based credential management
- Room password protection
- Direct peer-to-peer connections for low-latency communication through WebRTC
**Developer & Integration**
- Full [REST API](app/api/README.md)
- [Slack](https://api.slack.com/apps/) and [Mattermost](https://mattermost.com/) integrations
- [Sentry](https://sentry.io/) error reporting
- Customizable UI themes
- Meeting duration control (HH:MM:SS)
- Embeddable via iframe & [widget](#widget)
- And much more...
</details>
<details>
<summary>🔗 Direct Join</summary>
<br/>
- You can `directly join a room` by using links like:
- https://p2p.mirotalk.com/join?room=test&name=random&avatar=0&audio=0&video=0&screen=0&chat=0&hide=0&notify=0&duration=unlimited
- https://mirotalk.up.railway.app/join?room=test&name=random&avatar=0&audio=0&video=0&screen=0&chat=0&hide=0&notify=0&duration=unlimited
| Params | Type | Description |
| -------- | ------- | ------------------------- |
| room | string | Room Id |
| name | string | User name |
| avatar | Mixed | User avatar |
| audio | boolean | Audio stream |
| video | boolean | Video stream |
| screen | boolean | Screen stream |
| chat. | boolean | Chat |
| hide | boolean | Hide myself |
| notify | boolean | Welcome message |
| duration | string | Meeting duration HH:MM:SS |
| token | string | jwt token |
> **Note**
>
> The `token` parameter are optional when either `HOST_PROTECTED` or `HOST_USER_AUTH` is set to `true` in the `.env` file. The valid list of users is defined in the `HOST_USERS` configuration.
</details>
<details>
<summary>🛡️ Host Protection Configuration</summary>
<br/>
When [host protection](https://docs.mirotalk.com/mirotalk-p2p/host-protection/) or host user auth is enabled, the host/users must provide a valid username and password as specified in the `.env` file.
| Params | Value | Description |
| ---------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `HOST_PROTECTED` | `true` if protection is enabled, `false` if not (default false) | Requires the host to provide a valid username and password during room initialization. |
| `HOST_USER_AUTH` | `true` if user authentication is required, `false` if not (default false). | Determines whether host authentication is required. |
| `HOST_USERS` | JSON array with user objects: `{"username": "username", "password": "password"}` | List of valid host users with their credentials. |
</details>
<details open>
<summary>⚡ Quick start</summary>
<br/>
**Start in 6 commands:**
```bash
git clone https://github.com/miroslavpejic85/mirotalk.git
cd mirotalk
cp .env.template .env
cp app/src/config.template.js app/src/config.js
npm install
npm start
```
Open [http://localhost:3000](http://localhost:3000) - done!
</details>
<details open>
<summary>🐳 Docker</summary>
<br/>
![docker](public/images/docker.png)
**Prerequisites:** Install [Docker Engine](https://docs.docker.com/engine/install/) and [Docker Compose](https://docs.docker.com/compose/install/) - Image available on [Docker Hub](https://hub.docker.com/r/mirotalk/p2p)
```bash
git clone https://github.com/miroslavpejic85/mirotalk.git
cd mirotalk
cp .env.template .env
cp app/src/config.template.js app/src/config.js
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:3000](http://localhost:3000) - done!
> **Note:**
> Edit `app/src/config.js`, `.env`, and `docker-compose.yml` to customize your setup.
</details>
<details open>
<summary>🖥️ Self-Hosting</summary>
</br>
![setup](/public/images/self-hosting.png)
## **Requirements**
- A `clean server` running **Ubuntu 22.04 or 24.04 LTS**
- **Root access** to the Server
- A **domain or subdomain** pointing to your servers public IPv4
---
## Note
When **prompted**, simply **enter your domain or subdomain**. Then wait for the installation to complete.
```bash
# Install MiroTalk P2P
wget -qO p2p-install.sh https://docs.mirotalk.com/scripts/p2p/p2p-install.sh && chmod +x p2p-install.sh && ./p2p-install.sh
# Uninstall MiroTalk P2P
wget -qO p2p-uninstall.sh https://docs.mirotalk.com/scripts/p2p/p2p-uninstall.sh && chmod +x p2p-uninstall.sh && ./p2p-uninstall.sh
# Update MiroTalk P2P
wget -qO p2p-update.sh https://docs.mirotalk.com/scripts/p2p/p2p-update.sh && chmod +x p2p-update.sh && ./p2p-update.sh
```
</details>
<details open>
<summary>🔗 Embed a Meeting in Your App</summary>
<br/>
![iframe](public/images/iframe.png)
To embed a meeting within `your service or app` using an iframe, you can use the following code:
```html
<iframe
allow="camera; microphone; speaker-selection; display-capture; fullscreen; clipboard-read; clipboard-write; web-share; autoplay; picture-in-picture"
src="https://p2p.mirotalk.com/newcall"
style="height: 100vh; width: 100vw; border: 0px;"
></iframe>
```
## Widget
To quickly add a support [widget](https://codepen.io/Miroslav-Pejic/pen/Byowjvb) to your site, include the script in your `<head>` and place the widget `<div>` at the end of your `<body>`. Your support widget will be ready instantly!
```html
<!doctype html>
<html>
<head>
<script src="https://p2p.mirotalk.com/js/widget.js"></script>
</head>
<body>
<div
id="support-widget"
data-mirotalk-auto
data-domain="p2p.mirotalk.com"
data-room="support-room"
data-theme="dark"
data-widget-type="support"
data-widget-state="normal"
data-position="bottom-right"
data-check-online="false"
data-expert-images="https://i.pravatar.cc/40?img=1,https://i.pravatar.cc/40?img=2,https://i.pravatar.cc/40?img=3"
data-buttons="audio,video,screen,chat,join"
data-heading="Need Help?"
data-subheading="Get instant support from our expert team!"
data-connect-text="connect in &lt; 5 seconds"
data-online-text="We are online"
data-offline-text="We are offline"
data-powered-by="Powered by MiroTalk"
></div>
</body>
</html>
```
**[Explore Integrations →](https://docs.mirotalk.com/mirotalk-p2p/integration/)**
</details>
<details>
<summary>📚 Documentation</summary>
<br>
- `Ngrok/HTTPS:` You can start a video conference directly from your local PC and make it accessible from any device outside your network by following [these instructions](docs/ngrok.md), or expose it directly on [HTTPS](app/ssl/README.md).
- `Stun/Turn:` Install your own [Stun & Turn](https://docs.mirotalk.com/coturn/stun-turn/) by following [this instructions](./docs/coturn.md).
- `Self-hosting:` For `self-hosting MiroTalk P2P` on your own dedicated server, please refer to [this comprehensive guide](docs/self-hosting.md). It will provide you with all the necessary instructions to get your MiroTalk P2P instance up and running smoothly.
- `REST API:` The [API documentation](https://docs.mirotalk.com/mirotalk-p2p/api/) uses [swagger](https://swagger.io/) at http://localhost:3000/api/v1/docs or check it on live [here](https://p2p.mirotalk.com/api/v1/docs).
<details>
<summary>📡 API Examples</summary>
### 1. Get Server Statistics
```bash
curl -X GET "http://localhost:3000/api/v1/stats" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
curl -X GET "https://p2p.mirotalk.com/api/v1/stats" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
curl -X GET "https://mirotalk.up.railway.app/api/v1/stats" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
```
### 2. Meetings Endpoint (Get active meetings)
```bash
curl -X GET "http://localhost:3000/api/v1/meetings" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
curl -X GET "https://p2p.mirotalk.com/api/v1/meetings" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
curl -X GET "https://mirotalk.up.railway.app/api/v1/meetings" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
```
### 3. Create Meeting
```bash
curl -X POST "http://localhost:3000/api/v1/meeting" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
curl -X POST "https://p2p.mirotalk.com/api/v1/meeting" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
curl -X POST "https://mirotalk.up.railway.app/api/v1/meeting" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json"
```
### 4. Join Meeting (Basic)
```bash
curl -X POST "http://localhost:3000/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"random","avatar":false,"audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true,"duration":"unlimited"}'
curl -X POST "https://p2p.mirotalk.com/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"random","avatar":false,"audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true,"duration":"unlimited"}'
curl -X POST "https://mirotalk.up.railway.app/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"random","avatar":false,"audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true,"duration":"unlimited"}'
```
### 5. Join Meeting with Token
```bash
curl -X POST "http://localhost:3000/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"random","audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true,"token":{"username":"username","password":"password","presenter":true,"expire":"1h"}}'
curl -X POST "https://p2p.mirotalk.com/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"random","audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true,"token":{"username":"username","password":"password","presenter":true,"expire":"1h"}}'
curl -X POST "https://mirotalk.up.railway.app/api/v1/join" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"room":"test","name":"random","audio":true,"video":true,"screen":false,"chat":false,"hide":false,"notify":true,"token":{"username":"username","password":"password","presenter":true,"expire":"1h"}}'
```
### 6. Generate Token
```bash
curl -X POST "http://localhost:3000/api/v1/token" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"username":"username","password":"password","presenter":true,"expire":"1h"}'
curl -X POST "https://p2p.mirotalk.com/api/v1/token" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"username":"username","password":"password","presenter":true,"expire":"1h"}'
curl -X POST "https://mirotalk.up.railway.app/api/v1/token" -H "authorization: mirotalkp2p_default_secret" -H "Content-Type: application/json" --data '{"username":"username","password":"password","presenter":true,"expire":"1h"}'
```
These commands should now work correctly with the MiroTalk P2P
</details>
</details>
<details open>
<summary>☁️ Recommended Hosting Providers</summary>
<br/>
| Provider | Description | Link |
| ---------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [![Cloudron](public/sponsors/Cloudron.png)](https://www.cloudron.io/) | One-click install from the [Cloudron App Store](https://www.cloudron.io/store/index.html). Automates deployment, updates, backups, and user management. | [Get Started](https://www.cloudron.io/) |
| [![Hetzner](public/sponsors/Hetzner.png)](https://www.hetzner.com) | One of the best [cloud providers](https://www.hetzner.com/cloud) and [dedicated root servers](https://www.hetzner.com/dedicated-rootserver). Used for our live demo. | [Get €20 Free Credits](https://hetzner.cloud/?ref=XdRifCzCK3bn) |
| [![Netcup](public/sponsors/Netcup.png)](https://www.netcup.com/en/?ref=309627) | Enterprise-grade performance at unbeatable prices. Scalable and reliable. | [Explore Netcup](https://www.netcup.com/en/?ref=309627) |
| [![Hostinger](public/advertisers/Hostinger.png)](https://hostinger.com/?REFERRALCODE=MIROTALK) | Fast, reliable hosting with 24/7 support and great performance. | [Check out Hostinger](https://hostinger.com/?REFERRALCODE=MIROTALK) |
| [![Contabo](public/advertisers/Contabo.png)](https://www.dpbolvw.net/click-101027391-14462707) | Top-tier German hosting, dedicated servers, VPS, and web hosting at unbeatable prices. | [Explore Contabo](https://www.dpbolvw.net/click-101027391-14462707) |
To set up your own instance of `MiroTalk P2P` on a dedicated cloud server, please refer to our comprehensive [self-hosting documentation](https://docs.mirotalk.com/mirotalk-p2p/self-hosting/).
</details>
<details>
<summary>🙏 Credits</summary>
<br/>
- ianramzy (html [template](https://cruip.com/demos/neon/))
- vasanthv (webrtc-logic)
- fabric.js (whiteboard)
</details>
<details>
<summary>🤝 Contributing</summary>
<br/>
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. Run `npm run lint` before committing
4. Submit a pull request
Have questions? Join our [Discord community](https://discord.gg/rgGYfeYW3N)!
</details>
<details>
<summary>📄 License</summary>
<br/>
[![AGPLv3](public/images/AGPLv3.png)](LICENSE)
MiroTalk P2P 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](https://choosealicense.com/licenses/agpl-3.0/).
To obtain a [MiroTalk P2P license](https://docs.mirotalk.com/license/licensing-options/) with terms different from the AGPLv3, you can conveniently make your [purchase on CodeCanyon](https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661). This allows you to tailor the licensing conditions to better suit your specific requirements.
</details>
<details open>
<summary>Support the project</summary>
<br/>
Do you find MiroTalk P2P indispensable for your needs? Join us in supporting this transformative project by [becoming a backer or sponsor](https://github.com/sponsors/miroslavpejic85). By doing so, not only will your logo prominently feature here, but you'll also drive the growth and sustainability of MiroTalk P2P. Your support is vital in ensuring that this valuable platform continues to thrive and remain accessible for all. Make an impact - back MiroTalk P2P today and be part of this exciting journey!
| | | |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| [![Cloudron](public/sponsors/Cloudron.png)](https://cloudron.io) | [![EffectsSDK](public/sponsors/EffectsSDK.png)](https://effectssdk.ai/) | [![QuestionPro](public/sponsors/QuestionPro.png)](https://www.questionpro.com) |
| [![TestMuAI](public/sponsors/TestMuAIBlack.svg)](https://www.testmuai.com/?utm_medium=sponsor&utm_source=mirotalk) | [![BrowserStack](public/sponsors/BrowserStack.png)](https://www.browserstack.com) | [![CrystalSound](public/sponsors/CrystalSound.png)](https://crystalsound.ai) |
| [![Netcup](public/sponsors/Netcup.png)](https://www.netcup.com/en/?ref=309627) | | |
</details>
<details open>
<summary>Past Sponsors</summary>
<br/>
We are grateful to our past sponsors for their support!
| | | |
| -------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [![Hetzner](public/sponsors/HetznerLogo.png)](https://hetzner.cloud/?ref=XdRifCzCK3bn) | [![Kiquix](public/sponsors/KiquixLogo.png)](https://kiquix.com) | [![BroadcastX](public/sponsors/BroadcastX.png)](https://broadcastx.de/) |
| [![LuvLounge](public/sponsors/LuvLounge.png)](https://luvlounge.ca) | | |
</details>
<details open>
<summary>Advertisers</summary>
---
| | | |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| [![Hostinger](public/advertisers/Hostinger.png)](https://hostinger.com/?REFERRALCODE=MIROTALK) | [![Contabo](public/advertisers/Contabo.png)](https://www.dpbolvw.net/click-101027391-14462707) | [![Rambox](public/advertisers/RamboxLogo.png)](https://rambox.app?via=mirotalk) |
---
</details>
## EffectsSDK ✨
[![EffectsSDK](public/sponsors/EffectsSDK.png)](https://effectssdk.ai/)
`Enhance your video conferencing` experience with `advanced virtual backgrounds` and `noise suppression`. EffectsSDK offers powerful SDKs and plugins for fast integration.
**Explore:**
- 🎥 **[AI Video Effects Extension](https://chromewebstore.google.com/detail/effetti-webcam-ai-+-regis/iedbphhbpflhgpihkcceocomcdnemcbj)** - Add virtual backgrounds and effects to your webcam.
- 🔊 **[Noise Cancelling Extension](https://chromewebstore.google.com/detail/noise-cancelling-app/njmhcidcdbaannpafjdljminaigdgolj)** - Reduce background noise for clearer audio.
- 🛠️ **[Integrate EffectsSDK](https://github.com/EffectsSDK)** - Access SDKs and plugins for custom solutions.
---
## 🌐 Diving into Additional MiroTalk Projects:
<details>
<summary>MiroTalk SFU</summary>
<br>
Try also [MiroTalk SFU](https://github.com/miroslavpejic85/mirotalksfu) `selective forwarding unit` real-time video conferences, optimized for large groups. `Unlimited time, unlimited concurrent rooms` each having 8+ participants, up to ~ 100 per single CPU.
</details>
<details>
<summary>MiroTalk C2C</summary>
<br>
Try also [MiroTalk C2C](https://github.com/miroslavpejic85/mirotalkc2c) `peer to peer` real-time video conferences, optimized for cam 2 cam. `Unlimited time, unlimited concurrent rooms` each having 2 participants.
</details>
<details>
<summary>MiroTalk BRO</summary>
<br>
Try also [MiroTalk BRO](https://github.com/miroslavpejic85/mirotalkbro) `Live broadcast` (peer to peer) live video, audio and screen stream to all connected users (viewers). `Unlimited time, unlimited concurrent rooms` each having a broadcast and many viewers.
</details>
<details>
<summary>MiroTalk WEB</summary>
<br>
Try also [MiroTalk WEB](https://github.com/miroslavpejic85/mirotalkwebrtc) a platform that allows for the management of an `unlimited number of users`. Each user must register with their email, username, and password, after which they gain access to their `personal dashboard`. Within the dashboard, users can `manage their rooms and schedule meetings` using the desired version of MiroTalk on a specified date and time. Invitations to these meetings can be sent via email, shared through the web browser, or sent via SMS.
</details>
---
This project is tested with [BrowserStack](https://www.browserstack.com).
---
## Star History
If you like this project, please star it - every star helps more people discover this free Zoom alternative!
[![Star History Chart](https://api.star-history.com/svg?repos=miroslavpejic85/mirotalk&type=Date)](https://star-history.com/#miroslavpejic85/mirotalk&Date)
---
<p align="center">
Built with ❤️ by <a href="https://www.linkedin.com/in/miroslav-pejic-976a07101/">Miroslav</a> and the open-source community
<br><br>
<strong>If you find MiroTalk P2P useful, please ⭐ Star it on GitHub - it helps others discover this project!</strong>
<br>
<a href="https://github.com/miroslavpejic85/mirotalk"><strong>⭐ Star MiroTalk P2P on GitHub</strong></a>
</p>