docs: 记录并归档工单 #51
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<!-- 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: c4a8ab61dd224498d859f76befe7b9f4bf031fe3
|
||||
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 镜像。
|
||||
|
||||
Reference in New Issue
Block a user