Go-Live

License: MIT Go Report Card Go Release

中文 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 支持

🔗 相关链接