docs: 归档工单 #51

This commit is contained in:
QiuSW
2026-08-13 12:41:10 +08:00
parent 0f459f0396
commit f25852653d
2 changed files with 72 additions and 0 deletions
@@ -0,0 +1,68 @@
<!-- gitea-wiki-mirror:start -->
generated: true (请先修改 Gitea Wiki,禁止直接编辑本文件)
wiki_page: Task-51-接入成功后自动建立媒体路由并进入实时监看
wiki_url: https://git.ilapage.cn/ila/yovision/wiki/Task-51-%E6%8E%A5%E5%85%A5%E6%88%90%E5%8A%9F%E5%90%8E%E8%87%AA%E5%8A%A8%E5%BB%BA%E7%AB%8B%E5%AA%92%E4%BD%93%E8%B7%AF%E7%94%B1%E5%B9%B6%E8%BF%9B%E5%85%A5%E5%AE%9E%E6%97%B6%E7%9B%91%E7%9C%8B.-
wiki_revision: 6022b9788576b532673cc1c50899b9a4474d33ec
synchronized_at: 2026-08-13T04:40:00Z
<!-- gitea-wiki-mirror:end -->
# 51 接入成功后自动建立媒体路由并进入实时监看
- 类型:功能
- 所属 Epic:#7
- 所属 MVP / 版本:#8
- 状态:待验收
- 日期:2026-08-13
- Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/51
- Wiki 页面:Task-51-接入成功后自动建立媒体路由并进入实时监看
- Wiki revision:见本地镜像头
## 背景与目标
摄像机已经能够完成 ONVIF/RTSP 接入并持久化 Profile,但用户仍需手工到视频服务创建路径,实时监看显示的也是内部 ID。目标是接入成功后自动建立路径,并用设备名称、位置和码流用途供非技术用户选择。
## 最终方案
- Admission 在至少一个 Profile 验证成功后调用窄媒体端口,对每个 ready Profile 按 Device/Profile 幂等配置并立即对账。
- 自动媒体结果持久化到接入记录。MediaMTX 不可用时不回滚设备接入,返回需要处理的业务提示。
- Media 使用独立 RTSP 凭据;进程或控制接口错误只向界面返回安全业务说明,不暴露底层路径和错误。
- 实时监看 API 投影设备名称、位置、Profile 名称和主/子码流用途,内部 ID 仅用于关联。
- 接入页显示媒体自动配置结果;实时监看空状态引导用户先完成视频接入,再到视频服务排错。
## 修改文件
- `Sense/server/app/sense/admission/**`:媒体结果、回调端口、持久化和迁移。
- `Sense/server/app/sense/media/**`:批量幂等配置、自动对账与安全降级。
- `Sense/server/app/sense/device/credential_port.go`:只读业务展示投影。
- `Sense/server/app/sense/liveview/**`:业务标签投影。
- `Sense/ui/src/views/sense/{admission,liveview}/`:自动配置结果与业务化选择。
- Wiki 架构、业务规则和排错页面。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| ready Profile 自动建立媒体路径 | 通过,真实设备 2 个 ready Profile 自动生成 2 条路径 |
| 重复接入不产生重复路径 | 通过,单元测试验证按 Device/Profile 幂等 |
| MediaMTX 不可用不回滚接入 | 通过,接入为 ready,媒体状态为 needs_attention |
| 实时监看使用业务标签 | 通过,真实 API 返回设备名称且所有路径有 Profile 用途 |
| 不泄露凭据、源 URI 或底层进程错误 | 通过 |
## 测试
- `go test ./...`:通过。
- `corepack pnpm lint`:0 error,806 个既有格式 warning。
- `corepack pnpm build`:通过,存在既有 webpack 体积 warning。
- Go 1.26.5 Windows 打包:通过。
- 真实设备脱敏验证:`admission_status=ready`、`ready_profiles=2`、`media_status=needs_attention`、`media_route_count=2`;所有路径使用业务设备名并包含码流用途。
- 未验证部分:当前环境没有可用 MediaMTX 二进制,因此未验证真实 WebRTC 画面;配置 MediaMTX 后可在视频服务重新对账。
## 遗留问题
- MediaMTX 是独立运行依赖,当前 Windows 包不包含该二进制。
- 严格 Harness 仍受既有 #44 归档缺少“最终方案”章节影响。
## 相关提交
- `b9f92dd` 自动媒体路径和业务化实时监看。
- `0f459f0` 更新长期 Wiki 镜像。
+4
View File
@@ -139,6 +139,10 @@
{
"page": "Task-50-ONVIF与RTSP分离凭据并持久化Profile",
"path": "docs/task/50-ONVIF与RTSP分离凭据并持久化Profile.md"
},
{
"page": "Task-51-接入成功后自动建立媒体路由并进入实时监看",
"path": "docs/task/51-接入成功后自动建立媒体路由并进入实时监看.md"
}
]
}