跳转到内容

Mumble — 游戏圈用了 20 年的低延迟开源语音

待复核

Mumble 是一个开源、低延迟、高音质的语音通话软件,2005 年生于德国一群魔兽世界玩家手里。日常类比:Discord 还没出生时,打副本要边打边喊”治疗顶我!""B 点三个!“,当时 TeamSpeak 闭源、收费、音质一般,他们就自己写了开源版——这就是 Mumble。

它由两个程序组成:

  • Mumble(客户端):装在自己电脑上,桌面 GUI,按话筒键(PTT)就能说话
  • Murmur(服务端):跑在服务器上,所有客户端连到它,由它把声音转发给其他人

最简单的用法:某台 Linux 起 Murmur,告诉队友”连 example.com:64738”。一台 1 核 1G 小 VPS 常能扛约 100 人同时说话。

零基础可以先连公共服务器试听,再决定要不要自建 Murmur。

不理解 Mumble,下面这些事都没法解释:

  • 为什么 Discord 火成这样,老牌电竞圈和音游圈还有人坚持用 Mumble
  • 为什么自托管 / 近端部署常能把语音延迟压到约 50ms 量级,而大众 SaaS 常见更高(量级因链路而异)
  • 为什么远程同声传译会场会用它——靠”位置音频”把不同语种译员摆在左耳/右耳
  • 为什么自托管语音服务没死——隐私、合规、不愿被 SaaS 锁死的需求一直在

Mumble 的设计可以拆成 三个关键决策

  1. TCP + UDP 双通道:控制信令(登录、聊天、用户列表)走 TCP,保证可靠;语音流走 UDP,丢一两包就丢了,不重传——重传过来的语音没人想听。UDP 被防火墙拦死时,可把语音塞进 TCP tunneling,能用但延迟更高。

  2. Opus + JitterBuffer:编码用 Opus(自适应码率,丢包恢复强);解码端有抖动缓冲器,把乱序到达的包按时间戳排好再播。网烂时自动降码率,网好时拉高——这套组合让中等抖动 + 少量丢包下仍能流畅说话。

  3. 位置音频(positional audio):游戏插件读取你和队友的 3D 坐标送给 Mumble,做 HRTF 双耳渲染——队友在左前方,左耳先听到。这是硬核游戏圈难被 Discord 替代的核心原因。

三个决策加起来:让人在网络抖、机器烂、游戏吵的环境里还能听清队友。类比:把”可靠的挂号信”和”实时的对讲机”拆成两条路,再加立体声定位。

Terminal window
docker run -d --name murmur \
-p 64738:64738 -p 64738:64738/udp \
mumblevoip/mumble-server:latest
  1. 看容器日志拿到首次超管密码提示
  2. 官网装桌面客户端,连 你的IP:64738
  3. 确认路由器/云安全组放行 TCP+UDP 64738

不通时先查 UDP 是否被挡——只开 TCP 也能连上控制面,但语音会卡或走 tunneling。

想改欢迎语 / 带宽上限时,可挂本地 ini(官方镜像文档有 murmur.ini 字段说明),例如限制每用户比特率,避免有人开超高码率拖垮小 VPS。

Raid(团队总频道)
├── 坦克(3 人)
├── 治疗(6 人)
├── DPS(近战 / 远程)
└── 候补与吃瓜

ACL 控制谁能进哪个频道、谁能踢人、谁能全团广播。指挥按”喊话键”声音进 Raid 总频道;平时各小组在自己频道吵,不影响别人。公会管理员把权限写进 ACL 一次,比”全员一个大房间互相抢麦”清净得多。

CS / Squad / Arma 装上 Link 插件后:

  • 队友在左侧 30 米开枪 → 左耳先到,音量较小
  • 贴脸喊”撤!” → 双耳同等响度
  • 身后被打倒 → 后方衰减后的声音

这种 3D 声场对判断敌情和队友位置,比游戏自带语音直观得多。Discord 至今不做同等级的游戏内位置音频,这是 Mumble 的差异化。

N 个译员各占一个频道讲不同语种,听众订阅想听的频道。位置音频可把”中文左耳、英文右耳”做成混听对照。延迟敏感场景(同传多 +100ms 就破节奏)下,你能控制服务器位置和链路,往往比通用会议 SaaS 更稳。

业余无线电圈也有人把 Mumble 和 SvxLink / Echolink 桥接,当”虚拟空中频道”转发各地电台信号——低延迟 + 频道 ACL 正好对得上。

  1. 不是真 E2EE:TLS 加密客户端到服务器链路,服务器能看到明文。把对话隐私当核心需求,应看 Signal / matrix-rust-sdk
  2. GUI 老派:基于 Qt,1.4 做过现代化,底子仍是 Widgets,不如 Electron 花哨。
  3. 位置音频不是开箱即用:需要游戏插件推坐标;小游戏常没人写;内存 hook 易被反作弊误判。
  4. Murmur 部署门槛:要开 UDP 64738、配证书、写 ACL;NAT/防火墙出问题就得懂网络才能 debug。Docker 降低安装成本,但网络与权限配置仍劝退纯小白。
  5. 没有官方移动端:iOS/Android 靠 Mumla、Plumble 等社区客户端,体验弱一截;地铁里靠手机和队友开黑不太现实。

适用

  • 老牌电竞 / 音游 / 战术射击的团队语音(位置音频是杀手锏)
  • 自托管小型社区语音房(约 10–200 人)
  • 远程同传 / 多语种会议;业余无线电桥接(Mumble + Echolink/SvxLink)

不适用

  • 需要真 E2EE 的私密对话 → Signal
  • 浏览器里直接打开 → 桌面客户端;浏览器走 webrtc-rsmatrix-rust-sdk
  • 视频通话 → Jitsi / Zoom
  • 万人发图表情包的公开社区 → Discord 体验更好
  • 2005 年:Thorvald Natvig 为魔兽公会写第一版,动机是不想再交 TeamSpeak 授权费;早期语音编码就是 Speex
  • 2012–2014 年:经 CELT 过渡后切到 Opus(RFC 6716),低带宽高音质标签坐实
  • 2010 年代:ACL 与频道树在公会管理场景成熟
  • 2020 年:1.4 加入 Markdown 聊天 + UI 改造;COVID 让自托管语音再受关注
  • 2025 年:大众市场归 Discord 后,Mumble 靠自托管 + 低延迟 + 位置音频留在硬核圈
  • 一句话:它没赢大众市场,但赢了”愿意自己架服务器的那批人”
  1. TCP + UDP 双通道是 VoIP 基本盘——控制可靠、媒体实时,不要用一种协议硬扛两种需求
  2. JitterBuffer + Opus 让烂网络也能听清——近 15 年实时语音的事实标准
  3. 位置音频是认知减负——大脑用方位定位声源,比文字标签”谁在说”直观
  4. 开源 + 自托管在 SaaS 时代仍有空间——用户在乎延迟、隐私、不被锁定中的任一项即可
  5. 20 年小项目活法:聚焦低延迟 + 位置音频,不追大众市场,社区黏性换长寿
  • webrtc-rs —— 浏览器/Rust 生态的同类协议栈,Mumble 偏桌面专用
  • matrix-rust-sdk —— 端到端加密的开源通信,弥补 Mumble 不做 E2EE
  • ejabberd —— 同时代自托管通信服务器(XMPP 文本 vs Mumble 语音)
  • libsignal —— 真正的端到端加密协议栈,对照 TLS 链路加密模型
  • discord-js —— 现代 SaaS 语音的对照面
  • aiortc —— Python WebRTC 实现,浏览器生态对照
  • openvidu —— OpenVidu — 把 Kurento 包成开箱即用的视频会议 PaaS