2026-05-21 16:50:23 +08:00
|
|
|
|
# Demo Client · 联调台
|
2026-05-21 15:56:53 +08:00
|
|
|
|
|
2026-05-25 10:24:25 +08:00
|
|
|
|
浏览器联调页,覆盖两条录制链路。语音待确认请使用 [`../voice-confirmation/`](../voice-confirmation/)(默认 :8080)。
|
2026-05-21 15:56:53 +08:00
|
|
|
|
|
2026-05-25 10:24:25 +08:00
|
|
|
|
## 两条链路
|
2026-05-21 15:56:53 +08:00
|
|
|
|
|
2026-05-21 16:50:23 +08:00
|
|
|
|
| 模式 | 操作 | API | 语音 | 结束手术 |
|
|
|
|
|
|
|------|------|-----|------|----------|
|
|
|
|
|
|
| **链路 1 · 真摄像头** | 填 camera_id → 开始手术 | `POST /client/surgeries/start` | 需要 | 需要 |
|
|
|
|
|
|
| **链路 3 · 离线精确** | 选 MP4 → 上传并处理 | `POST /internal/demo/offline-batch` | 无 | 不需要 |
|
2026-05-21 15:56:53 +08:00
|
|
|
|
|
2026-05-25 10:24:25 +08:00
|
|
|
|
链路 3 需 `DEMO_ORCHESTRATOR_ENABLED=true`。页顶「刷新状态」可查看 API 与 Demo 模式是否就绪。
|
2026-05-21 16:50:23 +08:00
|
|
|
|
|
|
|
|
|
|
## 界面说明
|
|
|
|
|
|
|
2026-05-25 10:44:41 +08:00
|
|
|
|
- **链路 1**:只需填 `camera_ids` 与耗材候选,点「开始手术」;**无需上传视频**(服务端自动 RTSP 拉流切片)。
|
2026-05-25 16:39:08 +08:00
|
|
|
|
- **链路 3**:独立 MP4 上传区;与链路 1 **互斥**——同一手术号若仍有实时开录,离线上传会被拒绝;页面会提示先「结束手术」或换号。
|
|
|
|
|
|
- **模式记忆**:上次选择的链路会保存在浏览器 localStorage;默认首次打开为链路 3。
|
2026-05-21 15:56:53 +08:00
|
|
|
|
|
2026-05-25 10:24:25 +08:00
|
|
|
|
详见 [`docs/video-backends.md`](../../docs/video-backends.md)。
|
2026-05-21 15:56:53 +08:00
|
|
|
|
|
2026-05-25 10:24:25 +08:00
|
|
|
|
## 启动
|
2026-05-21 15:56:53 +08:00
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-05-25 10:24:25 +08:00
|
|
|
|
cd clients/demo-client
|
2026-05-25 10:44:41 +08:00
|
|
|
|
python3 server.py
|
2026-05-21 15:56:53 +08:00
|
|
|
|
```
|
|
|
|
|
|
|
2026-05-25 10:44:41 +08:00
|
|
|
|
浏览器打开 `http://127.0.0.1:38081/`,API 地址填后端(默认 `http://127.0.0.1:38080`)。须用 `server.py`(而非裸 `http.server`),才能从 `labels.yaml` 加载编号+名称。
|
2026-05-21 15:56:53 +08:00
|
|
|
|
|
2026-05-25 10:24:25 +08:00
|
|
|
|
## HLS 预览(链路 1)
|
2026-05-21 15:56:53 +08:00
|
|
|
|
|
2026-05-25 10:24:25 +08:00
|
|
|
|
真 RTSP 可通过 MediaMTX 转 HLS 在页内预览;点击「启动 / 刷新预览」。
|