architecture.canvas 4.8 KB

12345678910111213141516171819202122232425262728
  1. {
  2. "nodes":[
  3. {"id":"title","type":"text","text":"# TG Live Game 架构 v1\n\n**日期**: 2026-01-06\n**状态**: v1 功能完成\n\n✅ Mac摄像头 → RTMPS → Cloudflare → Web播放\n✅ 用户认证 + 权限管理 (RBAC)\n✅ 摄像头/视频/直播 CRUD\n✅ 观看统计 + 审计日志","x":-870,"y":-1380,"width":450,"height":380,"color":"1"},
  4. {"id":"todo_list","type":"text","text":"## 待办事项\n\n### v1.1 优化\n- [ ] 仪表盘统计\n- [ ] 观看统计展示\n- [ ] 审计日志查看\n\n### v2 目标\n- [ ] RTSP输入支持\n- [ ] WHIP输出支持\n- [ ] Java进程管理\n\n### v3 目标\n- [ ] 多路流管理\n- [ ] 自动重连\n- [ ] 监控告警","x":-340,"y":-1380,"width":415,"height":380,"color":"3"},
  5. {"id":"hono_backend","type":"text","text":"**tg-live-game-hono**\n后端API服务\n\n技术栈:Hono + Cloudflare Workers + D1\n\n功能:\n- 认证系统 (JWT) ✅\n- 用户管理 (RBAC) ✅\n- 摄像头管理 CRUD ✅\n- 会话管理 ✅\n- 观看统计 ✅\n- 审计日志 ✅\n- Stream API 封装 ✅\n\n端口:localhost:8787","x":-1190,"y":-658,"width":300,"height":280,"color":"6"},
  6. {"id":"d1_database","type":"text","text":"**Cloudflare D1**\n数据库\n\n表结构:\n- users (用户)\n- user_permissions (权限)\n- cameras (摄像头)\n- live_sessions (会话)\n- videos (视频)\n- view_stats (统计)\n- audit_logs (日志)\n\n状态:✅ 已部署","x":-1190,"y":-300,"width":300,"height":260,"color":"2"},
  7. {"id":"java_service","type":"text","text":"**Java进程管理**\n(待开发)\n\n功能:\n- FFmpeg进程管理\n- 多路流管理\n- Cloudflare API调用\n\n状态:❌ 待实现","x":-402,"y":200,"width":405,"height":240,"color":"6"},
  8. {"id":"mac_camera","type":"text","text":"**Mac摄像头**\n\nFaceTime HD Camera\n分辨率:1280x720\n帧率:30fps\n\n状态:✅ 已验证","x":-730,"y":-898,"width":200,"height":140,"color":"3"},
  9. {"id":"stream_service","type":"text","text":"**tg-live-game-stream-service**\n推流服务\n\n技术栈:Bash + FFmpeg\n\n功能:\n- Mac摄像头推流 ✅\n- Mac屏幕推流 ✅\n- RTSP输入 ❌ 待实现\n- WHIP输出 ❌ 待实现\n\n协议:RTMPS","x":-340,"y":-928,"width":280,"height":200,"color":"2"},
  10. {"id":"cloudflare_stream","type":"text","text":"**Cloudflare Stream**\n云端视频服务\n\n功能:\n- RTMPS/SRT/WHIP 接收\n- 实时转码\n- HLS/DASH/WHEP 分发\n- 全球CDN\n- 自动录制\n\n账户:5544eac7cfb260d4fec9467d49513cea","x":-340,"y":-320,"width":280,"height":200,"color":"2"},
  11. {"id":"ip_camera","type":"text","text":"**IP摄像头**\n(ONVIF)\n\n协议:RTSP\n\n状态:❌ 待接入","x":-1050,"y":200,"width":350,"height":250,"color":"2"},
  12. {"id":"live_input","type":"text","text":"**当前Live Input**\n\nID: 3c1ae1949e76f200feef94b8f7d093ca\n名称: weathered-limit-6442\n\nRTMPS: rtmps://live.cloudflare.com:443/live\nHLS: customer-pj89kn2ke2tcuh19...","x":260,"y":50,"width":410,"height":220,"color":"2"},
  13. {"id":"browser","type":"text","text":"**浏览器播放**\n\n播放方式:\n- Cloudflare iframe ✅\n- HLS.js ✅\n- Jessibuca ✅\n- WebRTC/WHEP\n\n延迟:2-5秒 (HLS)","x":260,"y":-340,"width":410,"height":250,"color":"4"},
  14. {"id":"web_frontend","type":"text","text":"**tg-live-game-web**\n前端应用\n\n技术栈:Vue 3 + TypeScript + Vite + Element Plus\n\n功能:\n- 登录认证 ✅\n- 摄像头管理 ✅\n- 视频管理 ✅\n- 直播管理 ✅\n- 用户管理 (RBAC) ✅\n- Stream配置 ✅\n- Stream测试页 ✅\n\n端口:localhost:3001","x":260,"y":-960,"width":410,"height":413,"color":"5"}
  15. ],
  16. "edges":[
  17. {"id":"edge_mac_stream","fromNode":"mac_camera","fromSide":"right","toNode":"stream_service","toSide":"left","label":"AVFoundation"},
  18. {"id":"edge_stream_cf","fromNode":"stream_service","fromSide":"bottom","toNode":"cloudflare_stream","toSide":"top","label":"RTMPS ✅"},
  19. {"id":"edge_cf_browser","fromNode":"cloudflare_stream","fromSide":"right","toNode":"browser","toSide":"left","label":"HLS ✅"},
  20. {"id":"edge_hono_cf","fromNode":"hono_backend","fromSide":"bottom","toNode":"d1_database","toSide":"top","label":"D1"},
  21. {"id":"edge_hono_stream","fromNode":"hono_backend","fromSide":"right","toNode":"cloudflare_stream","toSide":"left","label":"Stream API"},
  22. {"id":"edge_web_hono","fromNode":"web_frontend","fromSide":"left","toNode":"hono_backend","toSide":"right","label":"/api/*"},
  23. {"id":"edge_web_browser","fromNode":"web_frontend","fromSide":"bottom","toNode":"browser","toSide":"top","label":"VideoPlayer"},
  24. {"id":"edge_ip_java","fromNode":"ip_camera","fromSide":"right","toNode":"java_service","toSide":"left","color":"1","label":"RTSP (待实现)"},
  25. {"id":"edge_java_cf","fromNode":"java_service","fromSide":"top","toNode":"cloudflare_stream","toSide":"bottom","color":"1","label":"WHIP (待实现)"},
  26. {"id":"edge_cf_live","fromNode":"cloudflare_stream","fromSide":"right","toNode":"live_input","toSide":"left","label":"实例"}
  27. ]
  28. }