MeetHub · 私有化 WebRTC 视频会议平台

Viewed 10

浏览器原生 · 一键高清通话 · 千人互动会议 · AI 预警联动 · 双向指挥喊话

官网: https://me.automate.org.cn


🎯 一句话介绍

MeetHub 是一款可私有化部署的企业级 WebRTC 视频会议中台,融合 1对1 高清通话、千人互动会议、MCU 智能混流、WHEP 外部流入会、AI 预警联动、双向指挥喊话于一体,开箱即用、数据不出内网。

无论是日常远程办公,还是应急指挥调度、AI 事件联动,一套系统全部覆盖。


💡 为什么选择 MeetHub

痛点 MeetHub 的答案
商业会议软件按人数收费,成本不可控 1000 元 / 服务器,不限房间数、不限并发用户
数据要出内网,安全审计过不了 全私有化部署,数据不出内网,支持 JWT + 房间级鉴权
硬件监控、会议、喊话三套系统割裂 与国标监控共用同一套后台,一套账号管全部
浏览器开会卡顿、糊成马赛克 P2P 直连 <100ms,弱网 3 秒自动重连
几百人开会,前端直接卡死 MCU 混流技术,1000 人旁听,前端只解 1 路音频
外部摄像头 / 医疗设备 / OBS 拉不进会议 标准 WHEP 协议,一键接入任意外部流
应急场景只能"看",不能"喊" 双向广播喊话,会议声音直接推到现场音柱
担心开源 MQTT Broker 版本碎片 / 漏洞 / 无人维护 MeetHub 自研 MQHub 信令服务,全栈自主可控

🚀 核心能力

一、会议与通话

  • 📞 1对1 高清通话:默认 P2P 直连,点对点不经服务器,延迟 <100ms;弱网自动降级 SFU 转发
  • 👥 千人互动会议:单场最高 1000 人同时在线;硬性限制 16 人开麦、4 人开视频,保障极致流畅
  • 🎙️ MCU 智能混流:3 人开麦起自动启动 MCU 混流,前端只解 1 路音频,带宽和 CPU 降低 90%+
  • ⛶ 全屏与画面切换:一键全屏任意画面,指挥场景随时聚焦关键监控或人员
  • 🪞 智能摄像头镜像:本地预览按自拍习惯镜像,对端始终看到真实视角

二、外部接入与双向喊话

  • 🖥️ WHEP 外部流无缝入会:监控探头、医疗设备、OBS 直播流等,通过标准 WHEP 链接一键拉入会议。房间级互斥,同一时间仅一人共享
  • 🎙️ 双向指挥喊话:会议中混流后的声音,可反向推流至带扬声器的国标摄像头或音柱 —— 领导和专家无需拿起电话,在会议里直接说话即可对现场喊话调度

三、与企业现有系统融合

  • 🌐 GBHub 统一管理中台:与国标监控共用同一套后台。一套账号体系,同时管理摄像头、对讲终端与会议房间
  • 🧠 AI 预警联动指挥:集成 AI 视频分析(安全帽、烟火、跌倒等),识别异常事件时自动拉起会议并推入现场画面,触发一键预警

四、基础设施

  • 🚀 分布式媒体集群:控制面与媒体面分离,按房间动态绑定 MCU 节点,横向扩容无上限
  • 📶 弱网自适应与秒级重连:心跳保活 + 断线重连 + ICE 恢复,网络抖动后 3 秒内自动恢复,外部流与喊话状态 10 秒内自动恢复
  • 💾 云端录像与多端回放:边推流边录像,文件自动落盘;支持 HTTP-FLV / HLS / MP4 在任意设备回放
  • 🔐 企业级安全与鉴权:全私有化部署,信令 HTTPS + WSS 加密,JWT Token + 房间级访问控制

🏗️ 技术架构

MeetHub 采用「客户端 → 信令接入 → 媒体转发」三层解耦架构,每一层都可以独立扩展与替换。整个后端由 纯 Rust 实现的两大微服务(gbhub-meeting 信令服务 + gbhub-mcu 混流服务)承担,共享同一个 common 协议库,与 ZLMediaKit 媒体引擎 + GB28181 网关 组成完整媒体面。

全系统信令总线由 MeetHub 自研的 MQHub 承载。MQHub 是 MeetHub 内置的 MQTT 信令服务组件,与信令服务同源、同部署、同升级,针对会议场景深度定制(Topic 结构、QoS 策略、心跳周期、重连策略),不依赖任何第三方 MQTT Broker,一个软件包 = 全套服务。

第一层:客户端(Browser / PWA)

  • 支持浏览器:Chrome / Edge / Safari / Firefox / 微信内置浏览器
  • 核心技术:WebRTC 原生 API(getUserMedia / RTCPeerConnection / MediaStream)
  • 接入协议:HTTPS + WSS(信令全链路加密)
  • 信令接入:通过 MeetHub 内置的 MQHub 提供的 WSS 通道订阅房间事件
  • 附加能力:PWA 支持添加到手机主屏,体验接近原生 App

第二层:信令接入层(gbhub-meeting)

模块 职责
MQHub 对接 接入同产品包内的 MQHub 信令服务,分发房间信令(加入 / 离开 / 状态 / 聊天 / 喊话)
JWT 鉴权 Token 校验、房间级访问控制、用户身份确认
房间路由 媒体模式协商(P2P / SFU)、WHIP / WHEP 地址分发
状态中心 房间状态、参会者列表、喊话归属、外部流互斥锁(Redis 存储)
ZLM API 代理 开流 / 关流 / 开录像,把 ZLM REST 能力暴露给前端

第三层:媒体转发层(gbhub-mcu + ZLMediaKit)

模块 职责
ZLMediaKit WHIP 推流 / WHEP 拉流 / 转发 / 录像
MCU 混流节点(gbhub-mcu) 多路音频混流为 1 路(16 人开麦 → 前端只解 1 路)
GB28181 网关 国标摄像头 / 音柱 / 对讲机接入与双向喊话
录像存储 边推流边录制,支持 HTTP-FLV / HLS / MP4 回放

数据流

① 普通会议流程:

参会者浏览器(WebRTC)→ 通过 WSS 连接到 MeetHub 自研的 MQHub 信令服务 → 信令服务分配房间并协商媒体模式 → 浏览器与媒体层的 ZLMediaKit 建立 WHIP/WHEP 连接 → 音视频开始双向流转。

② 1对1 通话流程:

参会者 A 与 B 通过 MQHub 交换 SDP 与 ICE → 双方直接建立 P2P 连接(不经服务器)→ 若 P2P 失败,自动降级为经由 ZLMediaKit 转发。

③ MCU 混流流程:

开麦人数 ≥ 3 → MQHub 推送 mix_state 事件 → MCU 混流节点拉取各参会者音频 → 解码 → 重采样到 48kHz → 定时叠加混流 → 编码为 1 路 Opus → 推回 ZLM → 前端所有参会者只拉 1 路混流音频。

④ 双向喊话流程:

MCU 混流结果 → 通过 GB28181 网关反向推流 → 现场音柱扬声器播放 → 现场人员听到指挥喊话。

⑤ 外部流接入流程:

用户粘贴 WHEP 链接 → 信令服务通过 Redis 抢占互斥锁 → 通过 MQHub 广播全房间 → 所有参会者从 ZLM 拉取同一路外部流。

关键设计特性

特性 说明
P2P + SFU 双模智能路由 1对1 优先 P2P 降延迟;多人自动切 SFU 保稳定
控制面 / 媒体面分离 信令与媒体各自独立部署,单点故障不影响全局
自研 MQHub 信令总线 全栈自研的 MQTT 服务组件,无第三方依赖,针对会议场景深度定制
标准协议栈 WebRTC / WHIP / WHEP / GB28181 / RTMP / HLS,可与任意系统对接
无客户端 现代浏览器直接打开,支持 PWA 添加到主屏
横向扩容 信令服务加实例即扩;媒体节点按房间动态绑定
边缘计算 支持多地域部署,就近接入降低延迟

⚙️ 后端服务技术栈

后端由两个纯 Rust 微服务组成,共享同一个 Cargo Workspace 与 common 协议库,同一份工具链、同一套 CI、零 C 依赖,交叉编译到 ARM / MIPS 国产服务器无障碍。

一、信令服务 gbhub-meeting

负责鉴权、房间管理、媒体模式协商、状态同步,是全系统的"大脑"。

运行时与基础设施

分类 依赖 作用
语言 Rust(Workspace 统一版本) 内存安全、高并发、无 GC
异步运行时 Tokio(full features) 全异步 I/O,MQTT / Redis / HTTP 全无阻塞
异步工具 futures-util Stream / Sink 组合子,处理 MQTT 消息流与并发任务
内存分配器 mimalloc(local_dynamic_tls) 高并发连接场景下延迟更稳、抖动更低
配置与日志 dotenv + env_logger + log 环境变量加载、结构化日志、容器化友好

信令与消息

分类 依赖 作用
MQTT 客户端 rumqttc(rustls-no-provider) 接入自研 MQHub 提供的 MQTT 服务,向前端下发 join/resp、broadcast、chat、mix_state、ext_state、talk_state 等信令
HTTP 客户端 reqwest(rustls-tls-webpki-roots-no-provider) 调 ZLMediaKit REST API(开流、关流、开录像、查流)
TLS 实现 rustls(aws-lc-rs) 现代 TLS,无系统 OpenSSL 依赖,CVE 面更小

状态与缓存

分类 依赖 作用
Redis 客户端 redis(tokio-comp + aio) 读写房间状态、参会者列表、喊话归属、外部流互斥锁
Redis 连接池 deadpool-redis(rt_tokio_1) 连接复用,高并发下避免握手开销
序列化 serde + serde_json 房间状态、MQTT 消息体统一 JSON 编解码

会话与 ID

分类 依赖 作用
唯一 ID uuid(v4) 房间 ID、会话 ID、请求追踪 ID
URL 解析 url(2.x) 解析 ZLM 返回的 WHIP/WHEP 地址
URL 编码 urlencoding(2.x) 构建 WHIP/WHEP 地址时对 app、stream 等参数安全编码

共享与错误

分类 依赖 作用
共享库 common(本地 crate) MQTT topic / Redis key / ZLM API 路径 / JWT 规则的单点定义
错误处理 anyhow 统一错误传播上下文,日志可定位到具体房间与 API 调用点

二、混流服务 gbhub-mcu

负责多路音频混流与双向喊话回推,是"16 路声音合成 1 路"的核心引擎。

运行时与基础设施

分类 依赖 作用
语言 Rust(Workspace 统一版本) 内存安全、零成本抽象、无 GC 停顿
异步运行时 Tokio(full features) 单 / 多线程异步调度,MQTT、HTTP、音频任务无阻塞
内存分配器 mimalloc(local_dynamic_tls) 高频音频 buffer 分配场景下延迟更低、抖动更小
配置与日志 dotenv + env_logger + log 环境变量加载、结构化分级日志

信令与消息

分类 依赖 作用
MQTT 客户端 rumqttc(rustls-no-provider) 接入自研 MQHub,订阅房间状态、开麦人数、喊话请求,与前端共用同一套 Topic
HTTP 客户端 reqwest(rustls-tls-webpki-roots-no-provider) 调 ZLM HTTP API(拉流、录像、喊话回推)、鉴权、房间信息查询
TLS 实现 rustls(aws-lc-rs) 现代 TLS 栈,不依赖系统 OpenSSL
序列化 serde + serde_json MQTT 消息、API 载荷、配置解析

音频处理(核心)

分类 依赖 作用
Opus 编解码 opus-pure 纯 Rust 实现,无 libopus 的 .so 依赖,交叉编译到 ARM / MIPS 无障碍
G.711 编解码 oxideav-g711 GB28181 摄像头 / 对讲终端常用的 PCMA / PCMU
音频重采样 rubato(fft_resampler) FFT 重采样,把 8k / 16k / 48k 多源统一到 48kHz
音频缓冲 audioadapter-buffers 多路音频流的环形缓冲与适配,处理抖动与时钟漂移

共享与错误

分类 依赖 作用
共享库 common(本地 crate) 与信令服务共享 MQTT topic / Redis key / ZLM API 定义
错误处理 anyhow 统一错误传播,日志可定位到具体音频流 / 房间

三、自研 MQHub 信令服务

MQHub 是 MeetHub 团队自研的 MQTT 信令服务组件,是 MeetHub 全栈自研体系的重要一环。

特性 说明
自研而非开源 不依赖 Mosquitto / EMQX / HiveMQ 等第三方 Broker,代码完全自主可控
场景深度定制 Topic 结构、QoS 策略、心跳周期、重连策略均针对"会议信令"场景深度优化
同源发布 与 MeetHub 同 Cargo Workspace、同 CI、同版本号,随 MeetHub 一同发版、一同升级
一体化部署 一个安装包即包含 MQHub,无需单独部署 / 单独运维 MQTT Broker
内网私有化 完全部署在内网,与外部互联网零依赖,满足等保与审计要求
全链路掌控 从浏览器 WSS 接入、信令服务订阅、MCU 事件消费,全链路都是自研代码,出问题可秒级定位

关键说明:MeetHub 不依赖任何第三方 MQTT Broker,所有信令流量都由自研 MQHub 承载。好处是——出问题能直接改代码、版本能同步发、私有化部署没有任何"这个 Broker 是客户自己装的"甩锅空间。

四、完整依赖清单

MeetHub 一体化软件包内的全部组件:

组件 来源 角色
gbhub-meeting 自研(Rust) 信令服务(鉴权 / 房间 / 状态 / ZLM 代理)
gbhub-mcu 自研(Rust) 混流服务(16 → 1 音频混流 + 喊话回推)
MQHub 自研(Rust) MQTT 信令总线(WSS 接入 + 消息路由)
ZLMediaKit 开源(C++) 媒体引擎(WHIP / WHEP / 转发 / 录像)
Redis 开源(C) 状态存储(房间状态、互斥锁)
GB28181 网关 自研 / 依赖 GBHub 国标摄像头 / 音柱 / 对讲机接入

依赖策略:核心链路(信令 / 混流 / MQTT / 前端)全部自研;媒体引擎(ZLM)和状态存储(Redis)采用成熟开源组件,只做必要的私有化封装。

五、为什么这样选型

① 纯 Rust,零 C 依赖

opus-pure 替代 libopus、rustls 替代 OpenSSL、oxideav-g711 替代 ffmpeg 片段。单二进制部署,不依赖系统动态库版本,docker pull 即可运行;交叉编译到国产化 ARM / MIPS 服务器零障碍。

② 状态外置 Redis,信令服务无状态

房间状态全部放 Redis。信令服务可无限水平扩展,任何一个实例重启都不影响房间;喊话归属、外部流互斥锁靠 Redis 原子操作(SET NX / LPUSH)保证唯一性。

③ MQTT 用自研 MQHub,全栈自主可控

信令总线不由 MeetHub 依赖第三方 Broker,而是使用 MeetHub 自研的 MQHub。好处是:

  • 零外部依赖:不引入 Mosquitto / EMQX / HiveMQ 等第三方组件,部署、升级、排障全在 MeetHub 团队掌控
  • 场景定制:Topic 结构、QoS、心跳、重连策略针对会议场景深度调优,比通用 Broker 更贴合业务
  • 版本同步:MQHub 与 MeetHub 同 Cargo Workspace、同 CI、同版本号,避免"Broker 版本与业务不兼容"
  • 一体化打包:一个安装包即包含全部组件,客户无需单独选型、单独部署、单独运维 MQTT Broker
  • 问题秒定位:从浏览器 WSS → MQHub → 信令服务 → MCU,全链路都是自研代码,线上问题能直接改代码

④ 信令服务不碰媒体,媒体扩展交给 ZLM

信令服务只调 ZLM 的 HTTP API,本身不解码、不转发、不混流。单实例轻松支撑数千房间,媒体扩展交给 ZLM 集群。

⑤ common 库统一协议

MQTT topic、Redis key 前缀、ZLM API 路径、JWT 签发校验规则全部在 common 中定义。任何一方修改,编译期就暴露不兼容,杜绝运行时"topic 拼错一个字符"的灾难。

六、两个服务的职责分工

维度 gbhub-meeting(信令服务) gbhub-mcu(混流服务)
所属层级 第二层:信令接入层 第三层:媒体转发层
核心职责 鉴权、房间管理、媒体协商、状态同步 多路音频混流(16 → 1)、双向喊话回推
对外接口 MQHub 信令 + Redis 状态 MQHub 事件 + ZLM HTTP API
有无状态 无状态(状态在 Redis) 无状态(任务跟随房间事件创建 / 销毁)
能否水平扩展 ✅ 加实例即扩 ✅ 按房间绑定节点扩
典型调用方向 浏览器 ↔ MQHub ↔ Redis / ZLM ZLM ↔ MQHub ↔ GB28181 网关

一句话总结:gbhub-meeting 负责"谁在房间里、房间什么状态、前端该连哪条流";gbhub-mcu 负责"多人开麦时怎么把 16 路声音合成 1 路,以及怎么把这 1 路声音推回现场音柱"。两者通过自研 MQHub 和 ZLM 解耦,各自独立扩展。

七、MCU 混流工作流(文字描述)

① 启动:读 .env → 初始化日志 → 连接 MQHub → 等待房间事件

② 开麦人数达 3 人:收到 MQHub mix_state 变更 → 调 ZLM API 拉取各参会者音频(Opus / G.711)→ 解码到 PCM → 用 rubato 重采样到 48kHz

③ 混流:每路 PCM 通过 audioadapter-buffers 做环形缓冲 → 定时(20ms 一帧)叠加 → 混流结果编码为 Opus

④ 推送:混流音频推回 ZLM → 前端所有参会者只拉 1 路混流音频 → 带宽和前端 CPU 双双下降

⑤ 双向喊话:收到 talk_start → 把 MCU 混流结果通过 GB28181 网关反向推流至现场音柱 → 现场人员听到指挥喊话

⑥ 回落:开麦人数回落至 2 人以下 → 停止 MCU 混流 → 前端切回 P2P 点对点音频,延迟进一步降低


🎬 应用场景

🏢 企业远程办公

跨地域团队实时协作,屏幕演示、文件讨论、画面切换并行,浏览器直接开会。

🚨 应急指挥调度

AI 预警识别异常后自动拉起会议;指挥中心在会议里直接对现场广播喊话;全过程自动录像审计。

🏭 工业园区监控

将 GB28181 摄像头一键拉入会议,与现场对讲终端双向沟通,统一在一套账号体系管理。

🏥 远程医疗会诊

专科摄像头 + 医疗设备画面通过 WHEP 拉入会诊会议;专家实时讨论并指导现场操作。

🎓 在线教育与企业培训

千人旁听的大型培训课,16 人可开麦互动问答;课程自动录制归档,随时回放学习。

💼 远程面试与商务洽谈

1对1 高清通话,画面清晰、全程录像,P2P 延迟低于 100ms,体验接近面对面。

🎧 客服中心视频坐席

视频客服坐席一对多排队接入,全程录像可追溯,支持外部摄像头画面联动。


💰 授权方案

单服务器授权:¥1000 / 台

项目 说明
✅ 房间数量 不限
✅ 并发用户 不限(单场会议最高 1000 人旁听)
✅ 全部功能 混流、外部流、AI 联动、双向喊话、录像,全部开放
✅ 版本升级 一年内免费升级至最新版本
✅ 技术支持 7×12 小时 专业技术支持
✅ 部署协助 提供初始安装部署协助

无隐藏费用,无按人头收费,一次授权,服务器内无限用。

部署流程

  1. 获取授权 — 联系我们购买 License,确认服务器信息
  2. 技术部署 — 远程安装 MeetHub 一体化软件包(内含 MQHub / 信令 / 混流 / ZLM / Redis),配置 HTTPS(1 天内可完成)
  3. 开始使用 — 创建账号与房间,分享链接给参会人

推荐配置: 4 核 8G 内存,100M 带宽,Linux(x86_64 / ARM64)


⚡ 立即体验

演示地址: https://mgr.automate.org.cn

  • 🎯 1对1 通话演示:https://mgr.automate.org.cn/meeting/?room=1234567
  • 👥 多人会议演示:https://mgr.automate.org.cn/meeting/group.html?room=3456

无需注册、无需安装插件,用 Chrome / Edge / Safari 最新版打开,输入任意房间号即可体验。


📊 关键指标速览

指标 数据
P2P 通话延迟 < 100ms
单场会议容量 1000 人 旁听
同时开麦上限 16 人
同时开视频上限 4 人
弱网自动重连 3 秒
外部流 / 喊话状态恢复 10 秒
前端音频解码数 1 路(MCU 混流后)
后端语言 纯 Rust(零 C 依赖)
信令总线 MQHub(MeetHub 自研),无第三方 MQTT Broker 依赖
授权价格 ¥1000 / 服务器

📞 联系我们

官网: https://me.automate.org.cn

微信联系: prcloud(扫码或搜索添加)

服务时间: 工作日 9:00 - 21:00 在线回复


🎁 现在开始

  1. 体验演示 → https://mgr.automate.org.cn
  2. 添加微信 → prcloud 咨询授权与部署
  3. 私有化上线 → 一天内完成部署,次日即可开会

MeetHub · 让企业拥有属于自己的 WebRTC 视频会议平台

© 2026 MeetHub · 保留所有权利

0 Answers
Related