Skip to content

项目对比

Go-Live 在 WebRTC SFU 领域占据特定定位:单二进制文件、Go 原生服务器,内置录制、认证和可观测性。本页将 Go-Live 与类似项目对比,明确其定位和权衡。

SFU 实现对比

特性Go-LivePion SFU ExampleJanus Gatewaymediasoup
语言GoGoCC++ / Node.js
部署单二进制源码构建包/构建npm + 原生
协议WHIP/WHEP自定义 HTTP插件式自定义 JS API
录制内置(IVF/OGG)手动捕获插件外部
认证Token + JWT无内置插件外部
可观测性Prometheus + OTel基础日志插件外部
房间管理内存自动管理手动插件手动
复杂度
适用场景直播、活动学习、PoC会议、SIP生产会议

设计权衡

为什么 Go-Live 选择简洁性

Go-Live 做出明确的权衡,优先考虑运维简洁性:

每房间单发布者

  • 消除 Simulcast 层选择复杂性
  • 移除流仲裁逻辑
  • 直播活动、网络研讨会、监控的自然适配
  • 权衡:不支持多方会议

内存房间状态

  • 零外部依赖(无 Redis、无数据库)
  • 快速房间创建和清理
  • 权衡:服务器重启时房间状态丢失

RTP 直通(无转码)

  • 可预测的 CPU 使用
  • 无编解码器许可问题
  • 权衡:无服务端混流、码率自适应或 MP4 录制

仅 WHIP/WHEP

  • 基于标准,兼容 OBS 和浏览器
  • 简单 HTTP 信令(无 WebSocket)
  • 权衡:无自定义信令支持高级特性

何时选择替代方案

用例推荐方案
多方视频会议Janus、mediasoup、LiveKit
SIP/PSTN 网关Janus
大规模广播(1 万+ 观众)CDN + SFU 集群
服务端混流/合成Kurento、自定义 MCU
简单直播 + 录制Go-Live
学习 WebRTC 内部原理Go-Live 或 Pion 示例

类似 Go 项目

项目定位与 Go-Live 的区别
pion/webrtcWebRTC 库Go-Live 基于 Pion 构建;Pion 是引擎,Go-Live 是应用
ion-sfu完整 SFU 库更多功能(Simulcast、数据通道),更复杂 API
LiveKit生产 SFU 平台全功能(录制、输出、SIP),需要更多基础设施

Go-Live 刻意比这些替代方案更简单。它作为参考实现和简单直播场景的实用工具。

Released under the MIT License.