docs: update to SRS trunk + multi-distribution architecture
This commit is contained in:
parent
5b7edcac5c
commit
a3a6a3a77a
11
.env.example
11
.env.example
|
|
@ -7,17 +7,22 @@ JWT_SECRET=
|
|||
# 可选:单独指定推流 JWT 签名密钥;留空则复用 JWT_SECRET
|
||||
SFU_TOKEN_SECRET=
|
||||
|
||||
# 后端顺序(主 SFU 在前):cloudflare 优先,srs 本地对照
|
||||
# 主干与分发:SRS 为唯一推流主干,分发按 DISTRIBUTORS 扇出
|
||||
SFU_PROVIDER=cloudflare,srs
|
||||
DISTRIBUTORS=srs-hls,cf,cdn
|
||||
|
||||
# SRS(本地对照后端:docker compose up -d srs)
|
||||
# 分发:第三方直播 CDN(RTMP 转推)
|
||||
CDN_RTMP_URL=
|
||||
CDN_NAME=cdn
|
||||
|
||||
# SRS(主干:唯一推流入口,docker compose up -d srs)
|
||||
SRS_API_BASE=http://localhost:1985
|
||||
SRS_HTTP_BASE=http://localhost:8080
|
||||
SRS_APP=live
|
||||
SRS_SECRET=
|
||||
SRS_CANDIDATE=127.0.0.1
|
||||
|
||||
# Cloudflare Realtime(主 SFU)
|
||||
# Cloudflare Realtime(分发之一:SFU 低延时)
|
||||
CF_APP_ID=
|
||||
CF_APP_SECRET=
|
||||
CF_BASE_URL=https://rtc.live.cloudflare.com/v1
|
||||
|
|
|
|||
20
README.md
20
README.md
|
|
@ -2,11 +2,10 @@
|
|||
|
||||
> **对标 SyncTV**:SyncTV 是 *Sync + TV*(一起看),**SyncLive 是 *Sync + Live*(一起播·一起看直播)**。本项目是 SyncTV 理念在直播场景的姐妹实现:一路推流,多端同步扇出。
|
||||
|
||||
基于 **Cloudflare Realtime + SRS** 双 SFU 的同步直播分流服务。控制面以 **protobuf / gRPC** 定义,媒体面走
|
||||
**Cloudflare Realtime**(主 SFU)与 **SRS**(本地/对照)的 WebRTC 扇出。
|
||||
基于 **SRS 主干 + 多路分发** 的同步直播服务。控制面以 **protobuf / gRPC** 定义,媒体面 SRS 为唯一推流入口。
|
||||
|
||||
- 一路推流 → SFU 扇出 → 多路拉流。
|
||||
- 同一路发布可同时落到 **Cloudflare Realtime** 与 **SRS** 两条分发链路(分流)。
|
||||
- 推流仅进入 SRS 主干(WHIP),由服务端按配置扇出到多路分发。
|
||||
- 分发方式:**SRS HLS 直推**(remux 原地出 HLS/FLV)+ **Cloudflare Realtime SFU**(低延时)+ **第三方直播 CDN**(RTMP 转推)。
|
||||
- 浏览器经服务端反向代理直连 SFU,凭证不出服务端。
|
||||
- 默认 DB 使用嵌入式 libSQL (file) 持久化房间分发拓扑,零外部依赖。
|
||||
- 前端为 **SolidJS + TanStack Router/Query + Ark UI + Tailwind v4** 单页应用,构建产物嵌入 Go 二进制。
|
||||
|
|
@ -20,9 +19,12 @@ sync-live/
|
|||
internal/
|
||||
config/ # 运行参数 + 正式环境密钥校验
|
||||
db/ # 嵌入式 libSQL 持久化
|
||||
sfu/cloudflare/ # Cloudflare Realtime REST 客户端 + Provider
|
||||
sfu/srs/ # SRS Provider
|
||||
server/ # gRPC 服务 + JSON 网关 + SRS/CF 媒体反代 + 房间拓扑
|
||||
sfu/cloudflare/ # Cloudflare Realtime 分发
|
||||
sfu/srs/ # SRS 主干
|
||||
sfu/cdn/ # 第三方 CDN 分发
|
||||
sfu/distributor.go # 分发抽象接口
|
||||
server/ # gRPC 服务 + JSON 网关 + 媒体反代 + 房间拓扑 + 分发编排
|
||||
static/ # 前端构建产物(由 web/ 构建生成,Go embed)
|
||||
static/ # 前端构建产物(由 web/ 构建生成,Go embed)
|
||||
auth/ # Casbin RBAC + JWT + 用户存储
|
||||
cmd/server/main.go
|
||||
|
|
@ -46,12 +48,14 @@ cp .env.example .env
|
|||
|
||||
未配置 `JWT_SECRET` 时服务将拒绝启动,避免以不安全默认密钥上线。
|
||||
|
||||
### 2. 起本地 SRS(可选,对照后端)
|
||||
### 2. 起本地 SRS(主干,必须)
|
||||
|
||||
```bash
|
||||
cd deploy && SRS_CANDIDATE=127.0.0.1 docker compose up -d srs
|
||||
```
|
||||
|
||||
SRS 为唯一推流入口,未启动时推流将失败。
|
||||
|
||||
### 3. 起控制面
|
||||
|
||||
```bash
|
||||
|
|
|
|||
Loading…
Reference in New Issue