Go-Live 首页
Go-Live
| 中文 | English |
基于 Go 和 Pion WebRTC 构建的轻量级、高性能 WebRTC SFU(选择性转发单元)服务器。支持 WHIP/WHEP 协议推流、房间广播、录制功能和完整可观测性。
🚀 快速开始
# 克隆代码仓库
git clone https://github.com/LessUp/go-live.git
cd go-live
# 直接运行
go run ./cmd/server
# 或者使用开发脚本(推荐)
./scripts/start.sh
服务启动后,访问 http://localhost:8080 查看前端界面。
✨ 核心特性
WHIP/WHEP 协议
完整支持 WHIP 推流和 WHEP 播放协议,兼容 OBS、浏览器等主流工具
房间广播
基于房间的 SFU 架构,一个发布者,多个订阅者,高效 RTP 分发
录制与上传
内置录制功能,支持自动上传到 S3/MinIO 对象存储
可观测性
Prometheus 指标采集和 OpenTelemetry 分布式追踪集成
认证体系
支持 Token 和 JWT 认证,可配置房间级访问控制
高性能
基于 Go 语言开发,低延迟、高并发的媒体流分发能力
📖 文档导航
| 文档 | 描述 | 链接 |
|---|---|---|
| 使用指南 | 部署、配置、API 示例、故障排除 | 使用指南 |
| API 参考 | 完整的 REST API 文档 | API 参考 |
| 架构设计 | 系统架构、模块说明、数据流 | 设计文档 |
🛠️ 快速部署
Docker 部署
# 构建镜像
docker build -t live-webrtc-go:latest .
# 运行
docker run --rm -p 8080:8080 live-webrtc-go:latest
# 启用录制
docker run --rm -p 8080:8080 \
-e RECORD_ENABLED=1 \
-e RECORD_DIR=/records \
-v $(pwd)/records:/records \
live-webrtc-go:latest
Docker Compose
version: '3.8'
services:
live-webrtc:
build: .
ports:
- "8080:8080"
environment:
- RECORD_ENABLED=1
volumes:
- ./records:/records
restart: unless-stopped
📦 系统要求
| 依赖 | 版本 | 说明 |
|---|---|---|
| Go | 1.22+ | 编译所需 |
| Docker | 20.10+ | 容器部署可选 |
| 浏览器 | Chrome 90+ / Firefox 88+ | WebRTC 支持 |