Skip to content

直播架构(SFU)

直播能力基于 live777(Rust SFU) 的 WebRTC 分发实现,服务端轻量、高并发。

架构

OBS 推流 ──RTMP/WHIP──> live777 SFU ──WebRTC──> Web 前端(多端拉流)

组件职责

组件说明
live777 SFURust 实现的 SFU(Selective Forwarding Unit,选择性转发单元)。只做媒体包的接收与转发,不混流、不转码,单机可支撑大量并发会话
推流端OBS 等工具通过 RTMP/WHIP 协议推流到 SFU
拉流端Web 前端通过 WebRTC 与 SFU 建立连接,低延迟观看

设计要点

  • WebRTC 分发:浏览器原生支持,无需额外插件,P2P + SFU 混合模式降低服务端压力;
  • 服务端轻量:SFU 不做转码,只转发媒体包,CPU 占用远低于传统 RTMP→HLS 转码链路;
  • 低延迟:WebRTC 端到端延迟通常在亚秒级,适合互动直播场景。

当前状态与演进

📌 说明:直播目前在代码仓库中为「待接入项」——架构与 README 已规划,SFU 组件为独立 Rust 服务,尚未与 Go 后端深度集成。

演进方向:

  1. 推流鉴权:对接后端推流密钥校验(已有设计);
  2. 录制与回放:SFU 侧录制流 → 存入 MinIO → 复用 VOD 转码流水线生成点播;
  3. 多房间管理:通过 etcd / API 管理直播间元数据与状态。

与 VOD 的关系

直播与点播共用同一套基础设施(MinIO / etcd / Kafka / API),直播录制后可无缝进入 VOD 转码流水线,形成「直播 → 回放点播」闭环。

延伸阅读

基于 MIT License 发布