From e73b3968976917c069305958060ed21dac00de77 Mon Sep 17 00:00:00 2001 From: ila <2+ila@noreply.git.ilapage.cn> Date: Thu, 13 Aug 2026 12:42:25 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=AE=B0=E5=BD=95=E5=B9=B6=E5=BD=92?= =?UTF-8?q?=E6=A1=A3=E5=B7=A5=E5=8D=95=20#51?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...建立媒体路由并进入实时监看.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 docs/task/51-接入成功后自动建立媒体路由并进入实时监看.md diff --git a/docs/task/51-接入成功后自动建立媒体路由并进入实时监看.md b/docs/task/51-接入成功后自动建立媒体路由并进入实时监看.md new file mode 100644 index 0000000..330b1c3 --- /dev/null +++ b/docs/task/51-接入成功后自动建立媒体路由并进入实时监看.md @@ -0,0 +1,69 @@ + +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: c4a8ab61dd224498d859f76befe7b9f4bf031fe3 +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 镜像。 +