MiroTalk SFU: Scalable WebRTC Video Conferences Up to 8K

MiroTalk SFU: Scalable WebRTC Video Conferences Up to 8K

Summary

MiroTalk SFU is a powerful, open-source WebRTC Selective Forwarding Unit built on Mediasoup, offering simple, secure, and scalable real-time video conferences. It supports resolutions up to 8K and 60fps, making it compatible with all major browsers and platforms for diverse communication needs. This self-hosted solution provides a rich set of features for meetings, webinars, and live broadcasting.

Repository Info

Updated on October 12, 2025
View on GitHub

Introduction

MiroTalk SFU (Selective Forwarding Unit) is a robust WebRTC solution designed for real-time video conferences. Built upon the powerful Mediasoup media server, it provides a simple, secure, and highly scalable platform for video communication, supporting resolutions up to 8K and 60 frames per second. Compatible with all major browsers and platforms, MiroTalk SFU is an open-source (AGPLv3) and self-hostable project, offering extensive features for meetings, webinars, and live streaming, including virtual backgrounds, AI integration, and advanced collaborative tools.

Installation

To get MiroTalk SFU up and running, you can choose between a direct Node.js setup or a Docker-based deployment.

Prerequisites

Ensure you have Node.js (version 18.X recommended), build-essential, Python 3.8 with pip, and FFmpeg installed on your system.

Manual Installation (Node.js)

  1. Clone the repository:
    git clone https://github.com/miroslavpejic85/mirotalksfu.git
    
  2. Navigate into the project directory:
    cd mirotalksfu
    
  3. Copy configuration files:
    cp app/src/config.template.js app/src/config.js
    cp .env.template .env
    
  4. Install dependencies:
    npm install
    
  5. Start the server:
    npm start
    # Or on a different port:
    # SERVER_LISTEN_PORT=3011 npm start
    
  6. Open https://localhost:3010 (or your specified port) in your browser.

Docker Installation

  1. Clone the repository:
    git clone https://github.com/miroslavpejic85/mirotalksfu.git
    
  2. Navigate into the project directory:
    cd mirotalksfu
    
  3. Copy configuration files:
    cp app/src/config.template.js app/src/config.js
    cp .env.template .env
    cp docker-compose.template.yml docker-compose.yml
    
  4. (Optional) Pull the official Docker image:
    docker-compose pull
    
  5. Create and start containers:
    docker-compose up
    
  6. Open https://localhost:3010 in your browser.

Examples

MiroTalk SFU offers flexible ways to integrate and interact with its conferencing features.

Direct Join Link

You can directly join a room using a URL with parameters:

https://sfu.mirotalk.com/join?room=test&roomPassword=0&name=mirotalksfu&avatar=0&audio=0&video=0&screen=0&chat=0&notify=0&duration=unlimited

Embed a Meeting (iframe)

Embed a meeting into your own service or application using an iframe:

<iframe
    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>

REST API - Create Meeting

Create a new meeting programmatically using the REST API:

curl -X POST "http://localhost:3010/api/v1/meeting" \
     -H "authorization: mirotalksfu_default_secret" \
     -H "Content-Type: application/json"

REST API - Join Meeting (Basic)

Join an existing meeting via the REST API:

curl -X POST "http://localhost:3010/api/v1/join" \
     -H "authorization: mirotalksfu_default_secret" \
     -H "Content-Type: application/json" \
     --data '{"room":"test","roomPassword":false,"avatar":false,"name":"mirotalksfu","audio":false,"video":false,"screen":false,"chat":false,"notify":false,"duration":"unlimited"}'

Why Use It

MiroTalk SFU stands out as a comprehensive and powerful solution for real-time communication, offering several compelling advantages:

  • Scalability and Performance: Built on Mediasoup, it supports high-resolution video (up to 8K, 60fps) and is designed for scalable conferences, ensuring smooth experiences for multiple participants.
  • Rich Feature Set: It includes a wide array of functionalities such as virtual backgrounds, screen sharing, file sharing, private chat, local and server-side recording, real-time polls, collaborative whiteboards, and rich text editors. It also integrates with ChatGPT for AI assistance and offers VideoAI for custom avatars.
  • Open Source and Self-Hosted: Being open-source under AGPLv3 and self-hostable, MiroTalk SFU provides complete control over your communication infrastructure, ensuring data privacy and customization flexibility.
  • Security: Features like host protection, user authentication, JWT management, and room password protection enhance the security of your conferences.
  • Broad Compatibility: It is compatible with all major desktop and mobile browsers, offering a consistent experience across devices.
  • Integration Capabilities: With a robust REST API, RTMP server integration (compatible with OBS), and direct integrations with platforms like Slack, Discord, and Mattermost, MiroTalk SFU can be seamlessly incorporated into existing workflows.

Links