diff --git a/docs/task/51-接入成功后自动建立媒体路由并进入实时监看.md b/docs/task/51-接入成功后自动建立媒体路由并进入实时监看.md new file mode 100644 index 0000000..b75ef5e --- /dev/null +++ b/docs/task/51-接入成功后自动建立媒体路由并进入实时监看.md @@ -0,0 +1,68 @@ + +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 + + +# 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 镜像。 diff --git a/wiki-docs.json b/wiki-docs.json index 4b2e528..cac74a9 100644 --- a/wiki-docs.json +++ b/wiki-docs.json @@ -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" } ] }