Skip to content

MiroTalk Home

mirotalk

MiroTalk Projects

Project Live Demo Description
๐Ÿ† SFU sfu.mirotalk.com Scalable group video conferencing
๐Ÿš€ P2P p2p.mirotalk.com Peer-to-peer video calls
โœจ C2C c2c.mirotalk.com Cam-to-Cam communication
๐Ÿ“ก BRO bro.mirotalk.com Broadcasting one-to-many streaming
๐Ÿ›  WEB webrtc.mirotalk.com Room scheduler and meeting manager
โš™๏ธ ADMIN Self-hosting guide Manage updates, configurations, and settings

View the complete MiroTalk projects overview and comparisons.


License

Support the ongoing development and adapt MiroTalk to your unique needs.

๐ŸŒ Check our licensing options


Questions & Support

Join our MiroTalk Community Forum for questions, discussions, and support.


About

MiroTalk WebRTC enables real-time audio and video communication directly through web browsers โ€” no plugins or software installations required.

Advantage Description
๐ŸŒ Ease of Use Connect via any web browser โ€” no complex setups or downloads needed
โšก Low Latency Smooth, near-instantaneous audio and video for real-time interactions
๐Ÿ”’ Security End-to-end encryption for private and confidential conversations
๐Ÿ’ป Cross-Platform Works on Windows, macOS, Linux, Android, and iOS
๐Ÿ“ˆ Scalability Supports one-on-one calls through large-scale conferences
๐Ÿ”— Integration Embeds seamlessly into existing platforms and applications
๐Ÿ› ๏ธ Flexible Open codebase lets developers build tailored solutions
๐Ÿ’ฐ Reduced Costs No dedicated hardware or software licenses required
๐ŸŽฎ Versatile Use for video conferencing, live streaming, customer support, and more

Fast Integration

iframe

Embed MiroTalk into your website or app with a simple iframe:

HTML
<iframe
  allow="camera; microphone; speaker-selection; display-capture; fullscreen; clipboard-read; clipboard-write; web-share; autoplay; picture-in-picture"
  src="https://sfu.mirotalk.com/newroom"
  style="width: 100vw; height: 100vh; border: 0px;"
></iframe>

Just change the src to match the MiroTalk variant you need:

Project Source URL CodePen
SFU https://sfu.mirotalk.com/newroom Demo
P2P https://p2p.mirotalk.com/newcall Demo
C2C https://c2c.mirotalk.com Demo
BRO https://bro.mirotalk.com Demo
WEB https://webrtc.mirotalk.com Demo

See also: React integration example

After setting up your MiroTalk instances, update the src attribute with your custom domain or subdomain.


Quick Custom Integration

Integrate MiroTalk into existing platforms like Perfex, PlayTube, Sngine, Wowonder, or any web application.

Step 1: HTML Button

Add a button to trigger a video conference session:

HTML
<!-- Button for Javascript -->

<button id="startConferenceButton">Start Video Conference</button>

<!-- Button for PHP-->

<form method="post">
  <button type="submit" name="startConferenceButton" id="startConferenceButton">
    Start Conference
  </button>
</form>

Step 2: Handle the Click Event

JavaScript:

JavaScript
document
  .getElementById("startConferenceButton")
  .addEventListener("click", function () {
    window.open("videoConference.html", "_blank");
    // toggleMiroTalk();
  });

PHP:

PHP
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
 if (isset($_POST['startConferenceButton'])) {
  echo '<script> window.open("videoConference.html", "_blank"); </script>';
  // echo '<script> toggleMiroTalk(); </script>';
 }
}

Step 3: Video Conference Page

Create a dedicated videoConference.html page:

HTML
<!-- videoConference.html -->
<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>

  <body>
    <!-- HTML container for the video conference -->
    <iframe
      id="mirotalkIframe"
      allow="camera; microphone; display-capture; fullscreen; clipboard-read; clipboard-write; web-share; autoplay"
      src="https://sfu.mirotalk.com/newroom"
      style="height: 100vh; width: 100vw; border: 0px;"
    ></iframe>
  </body>

  <!--
    The iframe 'src' attribute can be any of:
      - https://sfu.mirotalk.com
      - https://p2p.mirotalk.com
      - https://c2c.mirotalk.com
      - https://bro.mirotalk.com
      - https://webrtc.mirotalk.com
      - ...
    -->
</html>

Alternatively, embed the iframe in your existing page and toggle its visibility:

JavaScript
function toggleMiroTalk() {
  const mirotalkIframe = document.getElementById("mirotalkIframe");
  mirotalkIframe.style.display =
    mirotalkIframe.style.display === "none" ||
    mirotalkIframe.style.display === ""
      ? "block"
      : "none";
}

After setting up your MiroTalk instances, update the src attribute with your custom domain or subdomain.

Step 4: Customize the iframe src

Use query parameters to customize the URL โ€” see the join-room guide for each variant:


You can also generate meeting URLs via the REST API:


Self-Hosting

Deploy MiroTalk on your own server for full control over your data and infrastructure.

Project Self-Hosting Guide Configurations
๐Ÿ† SFU Self-hosting Config
๐Ÿš€ P2P Self-hosting Config
โœจ C2C Self-hosting Config
๐Ÿ“ก BRO Self-hosting Config
๐Ÿ›  WEB Self-hosting Config
โš™๏ธ ADMIN Self-hosting โ€”

Deployment Options

Multiple deployment methods are available to suit different environments:

Method Description Guide
๐Ÿ“œ Install Scripts Automated setup on Ubuntu with a single command Scripts guide
๐Ÿณ Docker Compose Containerized deployment for easy management Docker guide
โ˜๏ธ Cloudron One-click deployment with automatic updates and backups Cloudron guide

WebRTC Architectures

Understanding WebRTC architectures helps you choose the right MiroTalk product for your use case:

Architecture How It Works Best For
Mesh (P2P) Peers connect directly to each other Small groups, low latency
SFU Central server selectively forwards streams Larger meetings, scalable
MCU Server mixes all streams into one Centralized control, media mixing

๐Ÿ“– Learn more about WebRTC architectures


Advanced Features

MiroTalk offers powerful capabilities beyond basic video conferencing:

Feature Description Guide
๐Ÿ“บ RTMP Streaming Live stream to platforms via Node Media Server or Nginx RTMP RTMP guide
๐Ÿ“ˆ Scalability Scale to 100โ€“1000+ concurrent users with vertical or horizontal scaling Scalability guide
๐Ÿ”— Webhooks Event-driven integrations for room and user events SFU webhooks ยท P2P webhooks
๐Ÿ›ก๏ธ Host Protection Restrict room access and manage participants SFU ยท P2P
๐ŸŽจ Rebranding Customize the look and feel with your own brand SFU ยท P2P

Infrastructure & Utilities

Guides for setting up the supporting infrastructure:

Topic Description Guide
๐ŸŒ STUN/TURN NAT traversal with Coturn for reliable peer connections STUN/TURN overview ยท Installation
๐Ÿ”ง Ngrok Expose local servers via secure public URLs for development and testing Ngrok guide
๐Ÿ“ฆ NVM Manage multiple Node.js versions on your server NVM guide
๐Ÿ“ FTP Set up an FTP server for file transfers FTP guide
๐Ÿ”„ System Updates Keep your server up to date Update guide