diff --git a/README.md b/README.md index b67dcb1..3d5e0e6 100644 --- a/README.md +++ b/README.md @@ -135,6 +135,7 @@ uvicorn web2:app --host 127.0.0.1 --port 8001 --reload │ ├── src/main/ # 主进程 │ ├── src/preload/ # contextBridge │ ├── src/renderer/ # UI(直播 / 摄像头 / 拉流 / 网络 / 系统) +│ │ └── components/worker/ # 业务工作台(链路条 / 清单 / 指标) │ ├── src/youlive/ # 内嵌 youLIVE(主进程服务 + 共享类型) │ └── scripts/ # 离线运行时、图标 ├── web2.py # FastAPI 入口 @@ -165,7 +166,21 @@ uvicorn web2:app --host 127.0.0.1 --port 8001 --reload **直播** 页面向抖音无人转播业务,含 Pro 多频道、三层链路诊断、转播历史等。 -**摄像头** / **拉流** 页各自独立 UI 与工作流,不复用直播页布局;侧栏深链 `--nav=camera` / `--nav=pull` 可直达。 +**摄像头** / **拉流** 页各自独立 UI 与工作流,不复用直播页布局;侧栏深链可直达(见下表)。 + +| 深链参数 | 页面 | 说明 | +|----------|------|------| +| `--nav=record` | 直播 | 默认页;Windows 任务栏快捷方式 | +| `--nav=camera` | 摄像头 | 本机采集直推 | +| `--nav=pull` | 拉流 | 外部流转推 | +| `--nav=network` | 网络 | 测速与代理(`--nav=proxy` 同义) | +| `--nav=system` | 系统 | 负载、路径、会员门禁 | + +**业务工作台**(摄像头 / 拉流共用 `components/worker/`): + +- **WorkerFlowStrip**:三段链路条(采集/拉流 → 处理/编码 → YouTube 输出),按 `business_status` 着色 +- **WorkerChecklist**:启动前配置清单(设备/地址、密钥、码率等),未就绪项显示提示 +- **WorkerMetrics**:推流中展示 FFmpeg 速度、帧序号、worker 进程数与业务状态 直播页能力摘要: @@ -316,7 +331,12 @@ Electron 主进程自动注入 API 鉴权头。 ## 摄像头直推 -**摄像头** 页面向本机采集业务,布局为「预览 + 控制台」:左侧实时画面预览,右侧采集→编码→YouTube 链路状态与启停。 +**摄像头** 页面向本机采集业务,采用独立 **业务工作台** 布局: + +- **顶部 Hero**:设备摘要、链路条(采集 → 编码 → YouTube)、配置清单与启停按钮 +- **左侧**:`CameraLocalPreview` 实时画面预览 +- **下方三栏**:设备选择、编码参数、YouTube 密钥与高级选项 +- **推流中**:右侧展示 `WorkerMetrics`(FFmpeg 速度 / 帧序号 / 业务状态) 进程名 `camera_youtube`,与抖音转播 `youtube2` 独立,请勿同时开启冲突 worker。 @@ -331,7 +351,11 @@ Electron 主进程自动注入 API 鉴权头。 ## 外部拉流转推 -**拉流** 页面向已有流媒体管线:从 SRS、OBS、其他节点提供的地址拉流,转码或复制后推到 YouTube Live。 +**拉流** 页面向已有流媒体管线:从 SRS、OBS、其他节点提供的地址拉流,转码或复制后推到 YouTube Live。布局与摄像头页一致的业务工作台: + +- **顶部 Hero**:拉流地址摘要、协议预设芯片、链路条(拉流 → 处理 → YouTube)、配置清单与启停 +- **下方三栏**:处理策略(协议/转码/码率)、YouTube 密钥、高级参数(SRT 延迟、重连、额外 FFmpeg 参数) +- **推流中**:展示实时 FFmpeg 指标与业务状态 进程名 `pull_stream_youtube`。