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
Tags
Click on any tag to explore related repositories
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)
- Clone the repository:
git clone https://github.com/miroslavpejic85/mirotalksfu.git
- Navigate into the project directory:
cd mirotalksfu
- Copy configuration files:
cp app/src/config.template.js app/src/config.js cp .env.template .env
- Install dependencies:
npm install
- Start the server:
npm start # Or on a different port: # SERVER_LISTEN_PORT=3011 npm start
- Open
https://localhost:3010
(or your specified port) in your browser.
Docker Installation
- Clone the repository:
git clone https://github.com/miroslavpejic85/mirotalksfu.git
- Navigate into the project directory:
cd mirotalksfu
- 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
- (Optional) Pull the official Docker image:
docker-compose pull
- Create and start containers:
docker-compose up
- 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¬ify=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
- GitHub Repository: https://github.com/miroslavpejic85/mirotalksfu
- Live Demo: https://sfu.mirotalk.com
- Official Documentation: https://docs.mirotalk.com/mirotalk-sfu/
- Commercial License Options: https://codecanyon.net/item/mirotalk-sfu-webrtc-realtime-video-conferences/40769970