MiroTalk SFU
免费WebRTC - SFU - 简单、安全、可扩展的实时视频会议,支持高达8k分辨率和60fps。兼容所有主流浏览器和平台
加入我们的Discord社区,获取问题解答、讨论和支持
功能
- 完全免费 - 开源(AGPLv3) - 自托管,并且是PWA!
- 无限会议室,无时间限制。
- 直播流媒体。
- 支持133种语言翻译。
- 支持OpenID Connect (OIDC)认证层。
- 主持人保护,防止未经授权的访问。
- 用户认证,防止未经授权的访问。
- JWT.io安全管理主持人配置和用户认证的凭证,增强安全性并简化流程。
- 房间密码保护。
- 房间大厅,中央集会空间。
- 房间垃圾信息缓解,专注于防止垃圾信息。
- 地理定位,识别或估计参与者的真实地理位置。
- 兼容桌面和移动设备。
- 优化的移动房间URL分享。
- 网络摄像头流媒体,支持移动设备的前后摄像头。
- 广播,向广大观众分发音频或视频内容。
- 清晰的音频流,具有说话检测和音量指示器。
- 屏幕共享用于演示。
- 文件共享,支持拖放。
- 选择音频输入、输出和视频源。
- 支持高达4K的视频质量。
- 支持高级画中画(PiP),提供更流畅灵活的观看体验。
- 在本地或服务器上录制屏幕、音频和视频。
- 截取视频帧并保存为PNG图像。
- 聊天功能,包括表情选择器、私人消息、Markdown支持和对话保存。
- ChatGPT(由OpenAI提供支持)用于回答问题、提供信息和连接用户到相关资源。
- VideoAI使用户能够自定义AI头像来传递消息、执行任务或表演脚本。
- 语音识别,仅用语音执行应用功能。
- 按键通话功能,类似对讲机。
- 为教师提供高级协作白板。
- 高级协作功能强大的富文本编辑器。
- 实时共享YouTube嵌入视频、视频文件(MP4、WebM、OGG)和音频文件(MP3)。
- 实时投票,允许用户创建和参与实时投票,提供即时反馈和结果。
- 集成RTMP服务器,完全兼容**OBS**。
- 支持从文件、URL、网络摄像头、屏幕和窗口进行RTMP流媒体。
- 全屏模式,一键缩放视频元素和固定/取消固定。
- 可定制的UI主题。
- 视频元素右键选项提供额外控制。
- 支持REST API(应用程序编程接口)。
- 与Slack集成以增强通信。
- 使用Sentry进行错误报告。
- 还有更多...
直接加入
-
您可以使用以下链接格式
直接加入房间
: -
参数 类型 描述 room 字符串 房间ID roomPassword 字符串/布尔值 房间密码 name 字符串 用户名 audio 布尔值 音频流 video 布尔值 视频流 screen 布尔值 屏幕共享流 notify 布尔值 欢迎消息 hide 布尔值 隐藏自己 token 字符串 JWT
示例:
host: {
protected: true,
user_auth: true,
users: [
{
username: '用户名',
password: '密码',
},
{
username: '用户名2',
password: '密码2',
},
//...
],
},
嵌入会议
要使用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>
快速开始
# Gcc g++ make
$ apt-get update
$ apt-get install -y build-essential
# Python 3.8 和 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
- 启动服务器
# 克隆此仓库
$ git clone https://github.com/miroslavpejic85/mirotalksfu.git
# 进入mirotalksfu目录
$ cd mirotalksfu
# 将app/src/config.template.js复制到app/src/config.js,并根据需要进行编辑
$ cp app/src/config.template.js app/src/config.js
# 安装依赖 - 请耐心等待,第一次可能需要几分钟,同时可以喝杯咖啡 ;)
$ npm install
# 启动服务器
$ npm start
# 如果要在不同于默认端口上启动服务器,请使用环境变量
$ PORT=3011 npm start
- 在浏览器中打开https://localhost:3010或
:3011
(如果默认端口已更改)。
[!注意]
要在
Windows操作系统
上运行MiroTalk SFU
,您可以按照此文档中提供的说明进行操作。
Docker
# 将app/src/config.template.js复制到app/src/config.js 重要(根据您的需求进行编辑)
$ cp app/src/config.template.js app/src/config.js
# 将docker-compose.template.yml复制到docker-compose.yml并根据需要进行编辑
$ cp docker-compose.template.yml docker-compose.yml
# (可选)从Docker Hub获取官方镜像
$ docker-compose pull
# 创建并启动容器
$ docker-compose up # -d
# 停止并删除资源
$ docker-compose down
- 在浏览器中打开https://localhost:3010。
文档
-
Ngrok/HTTPS:
您可以直接从本地PC启动视频会议,并按照这些说明使其可从网络外的任何设备访问,或直接在HTTPS上公开。 -
自托管:
关于在您自己的专用服务器上自托管MiroTalk SFU
,请参阅这份全面指南。它将为您提供所有必要的说明,以顺利启动和运行您的MiroTalk SFU实例。 -
Rest API:
API文档使用swagger,可在https://localhost:3010/api/v1/docs查看,或在[这里](https://sfu.mirotalk.com/api/v1/docs)查看在线版本。
# 响应将给出活跃的会议(默认禁用)。
$ 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"
# 响应将给出会议的入口点/房间URL。
$ 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"
# 响应将给出直接加入会议的入口点/URL。
$ 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"}'
# 响应将给出带令牌直接加入会议的入口点/URL。
$ 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"}}'
# 响应将给出会议的有效令牌(默认禁用)
$ 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"}'
Hetzner 和 Contabo
此应用程序出于演示目的在 Hetzner 上运行,Hetzner 是最佳的云服务提供商和专用根服务器之一。
使用我的个人链接可获得 €20 云服务积分
。
同时体验顶级德国网络托管服务 - 专用服务器、VPS 和网络托管,价格无与伦比。可靠、安全,并提供 24/7 全天候支持。立即在此探索
要在专用云服务器上设置您自己的 MiroTalk SFU
实例,请参阅我们全面的自托管文档。该指南将逐步引导您完成整个过程,确保顺利成功部署。
致谢
- [Davide Pacilio](https://cruip.com/demos/solid/) (HTML模板) - [Dirk Vanbeveren](https://github.com/Dirvann) (SFU逻辑) - [Mediasoup](https://mediasoup.org) (SFU服务器)
贡献
- 欢迎并非常感谢您的贡献!
- 只需在提交前运行
npm run lint
许可证
[](https://github.com/miroslavpejic85/mirotalksfu/blob/main/LICENSE
MiroTalk SFU 在 AGPLv3(GNU Affero 通用公共许可证 v3.0)条款下是免费和开源的。请尊重许可条件
,特别是修改也需要是免费的并向公众公开
。您可以在选择开源许可证快速了解该许可证。
要获得与 AGPLv3 不同条款的 MiroTalk SFU 许可证,您可以方便地在 CodeCanyon 上购买。这使您可以根据具体需求调整许可条件。
支持项目
您是否发现 MiroTalk SFU 对您的需求不可或缺?加入我们,通过成为支持者或赞助商来支持这个变革性项目。这样做不仅可以让您的徽标在此处突出显示,还能推动 MiroTalk SFU 的发展和可持续性。您的支持对确保这个有价值的平台继续蓬勃发展并对所有人保持可访问性至关重要。立即支持 MiroTalk SFU,成为这一激动人心旅程的一部分!
深入了解其他 MiroTalk 项目:
MiroTalk WEB
也可以尝试 MiroTalk WEB,这是一个允许管理无限数量用户
的平台。每个用户必须使用他们的电子邮件、用户名和密码注册,之后他们可以访问自己的个人仪表板
。在仪表板中,用户可以管理他们的房间并安排会议
,使用所需版本的 MiroTalk 在指定日期和时间进行。可以通过电子邮件发送这些会议的邀请,通过网络浏览器共享,或通过短信发送。
本项目使用 BrowserStack 进行测试。