mirotalksfu

mirotalksfu

开源WebRTC视频会议系统支持8K分辨率

MiroTalk SFU是一款开源WebRTC视频会议系统,采用SFU架构,支持8K分辨率和60fps帧率。系统兼容主流浏览器和平台,提供无限会议室、实时广播、多语言支持、身份认证等功能。具备屏幕共享、文件传输、聊天、白板等协作工具,并集成ChatGPT和VideoAI。基于WebRTC协议,确保低延迟和高质量的音视频传输。适用于远程会议、在线教育等多种场景,为用户提供高效、安全的视频通信解决方案。

WebRTCSFU视频会议实时通信开源软件Github开源项目
<h1 align="center">MiroTalk SFU</h1> <br /> <div align="center">

<a href="">作者</a> <a href="">许可证: AGPLv3</a> <a href="">社区</a>

</div> <p align="center">免费WebRTC - SFU - 简单、安全、可扩展的实时视频会议,支持高达8k分辨率和60fps。兼容所有主流浏览器和平台</p> <hr /> <p align="center"> <a href="https://sfu.mirotalk.com/">探索MiroTalk SFU</a> </p> <hr /> <p align="center"> <a href="https://sfu.mirotalk.com/"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/cae1e33a-2e68-4940-8aa2-e261e8b405b7.gif"> </a> </p> <hr /> <p align="center"> 加入我们的<a href="https://discord.gg/rgGYfeYW3N">Discord</a>社区,获取问题解答、讨论和支持 </p> <hr /> <details> <summary>功能</summary> <br/>
  • 完全免费 - 开源(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进行错误报告。
  • 还有更多...
</details> <details> <summary>关于</summary> <br> </details> <details> <summary>直接加入</summary> <br/> </details> <details> <summary>主持人保护配置</summary> <br/>

host.protectedhost.user_auth启用时,主持人/用户可以提供有效令牌,直接加入app/src/config.js文件中指定的房间。

</details> | 参数 | 值 | 描述 | | ---------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | | `host.protected` | 如果启用保护则为`true`,否则为`false`(默认为false) | 要求主持人在房间初始化时提供有效的用户名和密码。 | | `host.user_auth` | 如果需要用户认证则为`true`,否则为`false`(默认为false)。 | 决定是否需要主持人认证。 | | `host.users` | 包含用户对象的JSON数组:`{"username": "用户名", "password": "密码"}` | 有效主持人用户及其凭证列表。 |

示例:

host: { protected: true, user_auth: true, users: [ { username: '用户名', password: '密码', }, { username: '用户名2', password: '密码2', }, //... ], },
</details> <details open> <summary>嵌入会议</summary> <br/>

要使用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>
</details> <details open> <summary>快速开始</summary> <br/>
  • 在运行MiroTalk SFU之前,请确保您已安装Node.js和所有要求。此项目已使用Node版本18.X进行测试。

  • Ubuntu 24.04 LTS的要求安装示例

# 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.Xnpm


  • 启动服务器
# 克隆此仓库 $ 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
<br/>

[!注意]

要在Windows操作系统上运行MiroTalk SFU,您可以按照此文档中提供的说明进行操作。

</details> <details open> <summary>Docker</summary> <br/>

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
</details> <details> <summary>文档</summary> <br>
# 响应将给出活跃的会议(默认禁用)。 $ 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"}'
</details> <details open> <summary>Hetzner 和 Contabo</summary> <br/>

Hetzner

此应用程序出于演示目的在 Hetzner 上运行,Hetzner 是最佳的云服务提供商专用根服务器之一。


使用我的个人链接可获得 €20 云服务积分


Contabo

同时体验顶级德国网络托管服务 - 专用服务器、VPS 和网络托管,价格无与伦比。可靠、安全,并提供 24/7 全天候支持。立即在此探索


要在专用云服务器上设置您自己的 MiroTalk SFU 实例,请参阅我们全面的自托管文档。该指南将逐步引导您完成整个过程,确保顺利成功部署。

</details> <details> <summary>DigitalOcean</summary> <br/>

DigitalOcean 推荐徽章

对于个人使用,您可以从每月 5 美元的单个云服务器开始,根据需要进行扩展。您可以使用此链接获得 前 60 天 100 美元的信用额度

</details> <details> <summary>在线演示</summary> <br/>

<a target="_blank" href="https://hetzner.cloud/?ref=XdRifCzCK3bn"><img src="https://yellow-cdn.veclightyear.com/0a4dffa0/a17b24e3-9ed5-4ed1-b248-1e92aa814c27.png" style="width: 220px;"></a>

https://sfu.mirotalk.com

mirotalksfu-qr

</details> <details> <summary>致谢</summary> <br/> - [Davide Pacilio](https://cruip.com/demos/solid/) (HTML模板) - [Dirk Vanbeveren](https://github.com/Dirvann) (SFU逻辑) - [Mediasoup](https://mediasoup.org) (SFU服务器) </details> <details> <summary>贡献</summary> <br/>
  • 欢迎并非常感谢您的贡献!
  • 只需在提交前运行 npm run lint
</details> <details> <summary>许可证</summary> <br/>

[AGPLv3](https://github.com/miroslavpejic85/mirotalksfu/blob/main/LICENSE

MiroTalk SFU 在 AGPLv3(GNU Affero 通用公共许可证 v3.0)条款下是免费和开源的。请尊重许可条件,特别是修改也需要是免费的并向公众公开。您可以在选择开源许可证快速了解该许可证。

要获得与 AGPLv3 不同条款的 MiroTalk SFU 许可证,您可以方便地在 CodeCanyon 上购买。这使您可以根据具体需求调整许可条件。

</details> <details open> <summary>支持项目</summary> <br/>

您是否发现 MiroTalk SFU 对您的需求不可或缺?加入我们,通过成为支持者或赞助商来支持这个变革性项目。这样做不仅可以让您的徽标在此处突出显示,还能推动 MiroTalk SFU 的发展和可持续性。您的支持对确保这个有价值的平台继续蓬勃发展并对所有人保持可访问性至关重要。立即支持 MiroTalk SFU,成为这一激动人心旅程的一部分!

BroadcastXHetzner
LuvLoungeQuestionPro
BrowserStackCrystalSound
CloudronKiquix
</details> <details open> <summary>广告商</summary>

Contabo


</details>

深入了解其他 MiroTalk 项目:

<details> <summary>MiroTalk P2P</summary> <br/>

也可以尝试 MiroTalk P2P 点对点实时视频会议,为小群组优化。无限时间,无限并发房间,每个房间可容纳 5-8 名参与者。

</details> <details> <summary>MiroTalk C2C</summary> <br>

也可以尝试 MiroTalk C2C 点对点实时视频会议,为摄像头对摄像头优化。无限时间,无限并发房间,每个房间可容纳 2 名参与者。

</details> <details> <summary>MiroTalk BRO</summary> <br>

也可以尝试 MiroTalk BRO 直播广播(点对点)实时视频、音频和屏幕流至所有连接的用户(观众)。无限时间,无限并发房间,每个房间有一个广播者和多个观众。

</details> <details> <summary>MiroTalk WEB</summary> <br>

也可以尝试 MiroTalk WEB,这是一个允许管理无限数量用户的平台。每个用户必须使用他们的电子邮件、用户名和密码注册,之后他们可以访问自己的个人仪表板。在仪表板中,用户可以管理他们的房间并安排会议,使用所需版本的 MiroTalk 在指定日期和时间进行。可以通过电子邮件发送这些会议的邀请,通过网络浏览器共享,或通过短信发送。

</details>

本项目使用 BrowserStack 进行测试。


编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多