免费WEBRTC -SFU-简单,安全,可扩展的实时视频会议,最多支持8K分辨率和60fps。它与所有主要浏览器和平台兼容
探索Mirotalk SFU

加入我们的社区,以提出问题,讨论和支持
100% Free - Open Source (AGPLv3) - Self Hosted和PWA!您可以使用链接directly join a room :
https://sfu.mirotalk.com/join?room = test&roompassword = 0&name = mirotalksfu&audio = 0&video = 0&screen=0¬ify=0
| 参数 | 类型 | 描述 |
|---|---|---|
| 房间 | 细绳 | 房间ID |
| Roompassword | 字符串/布尔值 | 房间密码 |
| 姓名 | 细绳 | 用户名 |
| 声音的 | 布尔 | 音频流 |
| 视频 | 布尔 | 视频流 |
| 屏幕 | 布尔 | 屏幕流 |
| 通知 | 布尔 | 欢迎消息 |
| 隐藏 | 布尔 | 隐藏自己 |
| 令牌 | 细绳 | JWT |
当启用host..protected或host.user_auth时,主机/用户可以提供有效的令牌,用于app/src/config.js文件中指定的直接加入房间。
| 参数 | 价值 | 描述 |
|---|---|---|
host.protected | 如果启用了保护, true ,如果没有,则为false (默认为false) | 要求主机在房间初始化期间提供有效的用户名和密码。 |
host.user_auth | 如果需要用户身份验证, false true默认为false)。 | 确定是否需要主机身份验证。 |
host.users | 带有用户对象的JSON数组: {"username": "username", "password": "password"} | 有效的主机用户列表及其凭据。 |
例子:
host : {
protected : true ,
user_auth : true ,
users : [
{
username : 'username' ,
password : 'password' ,
} ,
{
username : 'username2' ,
password : 'password2' ,
} ,
//...
] ,
} ,在运行MiroTalk SFU之前,请确保您有Node.js和所有要求。该项目已通过节点版本18.x进行了测试。
要求安装Ubuntu 24.04 LTS的示例
# Gcc g++ make
$ apt-get update
$ apt-get install -y build-essential
# Python 3.8 and pip
$ DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
$ apt install -y software-properties-common
$ add-apt-repository -y ppa:deadsnakes/ppa
$ apt update
$ apt install -y python3.8 python3-pip
# FFmpeg
$ apt install -y ffmpeg
使用Node版本管理器安装NodeJS 18.X和npm
# Clone this repo
$ git clone https://github.com/miroslavpejic85/mirotalksfu.git
# Go to to dir mirotalksfu
$ cd mirotalksfu
# Copy app/src/config.template.js in app/src/config.js and edit it if needed
$ cp app/src/config.template.js app/src/config.js
# Install dependencies - be patient, the first time will take a few minutes, in the meantime have a good coffee ;)
$ npm install
# Start the server
$ npm start
# If you want to start the server on a different port than the default use an env var
$ PORT=3011 npm start:3011如果在浏览器中更改了默认端口。[!笔记]
要在
Windows operating system上运行MiroTalk SFU,您可以按照本文档中提供的说明进行操作。

# Clone this repo
$ git clone https://github.com/miroslavpejic85/mirotalksfu.git
# Go to to dir mirotalksfu
$ cd mirotalksfu
# Copy app/src/config.template.js in app/src/config.js IMPORTANT (edit it according to your needs)
$ cp app/src/config.template.js app/src/config.js
# Copy docker-compose.template.yml in docker-compose.yml and edit it if needed
$ cp docker-compose.template.yml docker-compose.yml
# (Optional) Get official image from Docker Hub
$ docker-compose pull
# Create and start containers
$ docker-compose up # -d
# To stop and remove resources
$ docker-compose down
要使用IFRAME嵌入your service or app中的会议,您可以使用以下代码:
< 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 >Ngrok/HTTPS:您可以直接从本地PC启动视频会议,并通过遵循这些说明使其从网络外部的任何设备访问,也可以直接在HTTPS上公开。
Self-hosting:有关您自己专用服务器上的self-hosting MiroTalk SFU ,请参阅此综合指南。它将为您提供所有必要的说明,以使您的MiroTalk SFU实例启动并顺利运行。
Rest API: API文档在https:// localhost:3010/api/v1/docs使用Swagger,或在此处进行现场检查。
# The response will give you the total of rooms and users.
$ curl -X GET " http://localhost:3010/api/v1/stats " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json "
$ curl -X GET " https://sfu.mirotalk.com/api/v1/stats " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json "
# The response will give you the active meetings (default disabled).
$ curl -X GET " http://localhost:3010/api/v1/meetings " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json "
$ curl -X GET " https://sfu.mirotalk.com/api/v1/meetings " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json "
# The response will give you a entrypoint / Room URL for your meeting.
$ curl -X POST " http://localhost:3010/api/v1/meeting " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json "
$ curl -X POST " https://sfu.mirotalk.com/api/v1/meeting " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json "
# The response will give you a entrypoint / URL for the direct join to the meeting.
$ curl -X POST " http://localhost:3010/api/v1/join " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json " --data ' {"room":"test","roomPassword":"false","name":"mirotalksfu","audio":"false","video":"false","screen":"false","notify":"false"} '
$ curl -X POST " https://sfu.mirotalk.com/api/v1/join " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json " --data ' {"room":"test","roomPassword":"false","name":"mirotalksfu","audio":"false","video":"false","screen":"false","notify":"false"} '
# The response will give you a entrypoint / URL for the direct join to the meeting with a token.
$ curl -X POST " http://localhost:3010/api/v1/join " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json " --data ' {"room":"test","roomPassword":"false","name":"mirotalksfu","audio":"false","video":"false","screen":"false","notify":"false","token":{"username":"username","password":"password","presenter":"true", "expire":"1h"}} '
$ curl -X POST " https://sfu.mirotalk.com/api/v1/join " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json " --data ' {"room":"test","roomPassword":"false","name":"mirotalksfu","audio":"false","video":"false","screen":"false","notify":"false","token":{"username":"username","password":"password","presenter":"true", "expire":"1h"}} '
# The response will give you a valid token for a meeting (default diabled)
$ curl -X POST " http://localhost:3010/api/v1/token " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json " --data ' {"username":"username","password":"password","presenter":"true", "expire":"1h"} '
$ curl -X POST " https://sfu.mirotalk.com/api/v1/token " -H " authorization: mirotalksfu_default_secret " -H " Content-Type: application/json " --data ' {"username":"username","password":"password","presenter":"true", "expire":"1h"} '
该应用程序正在运行,以demonstration purposes即Hetzner,这是the best云提供商和专用的根服务器之一。
使用我的个人链接€20 IN CLOUD CREDITS 。

经验还以unbeatable prices出现了德国顶级网络托管 - 专用服务器,VPS和网络托管。可靠,安全,并得到24/7的支持。现在在这里探索
要在专用的云服务器上设置您自己的MiroTalk SFU实例,请参考我们的全面自我托管文档。本指南将逐步引导您完成整个过程,以确保平稳而成功的部署。

https://sfu.mirotalk.com

npm run lint之前运行
Mirotalk SFU根据AGPLV3条款(GNU AFFERO通用公共许可证v3.0)是免费的和开源的。请respect the license conditions ,特别是modifications need to be free as well and made available to the public 。在选择开源许可证时快速概述许可证。
为了获得与AGPLV3不同条款的Mirotalk SFU许可证,您可以方便地在Codecanyon上购买。这使您可以量身定制许可条件,以更好地满足您的特定要求。
您是否发现Mirotalk SFU必不可少的需要满足您的需求?加入我们,通过成为支持者或赞助商来支持这一变革性项目。通过这样做,您的徽标不仅会在这里突出,而且还可以推动Mirotalk SFU的增长和可持续性。您的支持对于确保这个有价值的平台继续蓬勃发展并仍然可以使用所有人至关重要。产生影响 - 今天回到Mirotalk SFU,并成为这一激动人心的旅程的一部分!
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() | ![]() |
![]() |

还可以尝试将Mirotalk P2P peer to peer对小组进行优化的实时视频会议。 Unlimited time, unlimited concurrent rooms每个都有5-8名参与者。
还可以尝试Mirotalk C2C peer to peer实时视频会议,并针对CAM 2 CAM进行了优化。 Unlimited time, unlimited concurrent rooms每个房间都有2位参与者。
还可以尝试Mirotalk Bro Live broadcast (Peer to Peer)实时视频,音频和屏幕流到所有连接的用户(观看者)。 Unlimited time, unlimited concurrent rooms每个房间都有广播和许多观众。
还可以尝试Mirotalk Web一个平台,该平台允许管理unlimited number of users 。每个用户必须注册他们的电子邮件,用户名和密码,之后他们可以访问其personal dashboard 。在仪表板中,用户可以在指定的日期和时间使用所需版本的Mirotalk manage their rooms and schedule meetings 。这些会议的邀请可以通过电子邮件发送,通过网络浏览器共享或通过SMS发送。
该项目通过Browserstack进行了测试。