architecture-v1.canvas 4.0 KB

1234567891011121314151617181920212223242526
  1. {
  2. "nodes":[
  3. {"id":"hono_backend","type":"text","text":"**tg-live-game-hono**\n后端API服务\n\n技术栈:Hono + Cloudflare Workers\n\n功能:\n- 视频管理 CRUD\n- 直播管理 CRUD\n- Cloudflare Stream API 封装\n\n端口:localhost:8787","x":-1190,"y":-598,"width":280,"height":200,"color":"4"},
  4. {"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":"1"},
  5. {"id":"mac_camera","type":"text","text":"**Mac摄像头**\n\nFaceTime HD Camera\n分辨率:1280x720\n帧率:30fps\n\n状态:✅ 已验证","x":-730,"y":-798,"width":200,"height":140,"color":"3"},
  6. {"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":-828,"width":280,"height":200,"color":"2"},
  7. {"id":"todo_list","type":"text","text":"## 待办事项\n\n### v2 目标\n- [ ] RTSP输入支持\n- [ ] WHIP输出支持\n- [ ] Java进程管理\n\n### v3 目标\n- [ ] 多路流管理\n- [ ] 自动重连\n- [ ] 监控告警","x":-20,"y":-1140,"width":415,"height":222,"color":"1"},
  8. {"id":"title","type":"text","text":"# TG Live Game 架构 v1\n\n**日期**: 2024-12-31\n**状态**: POC 验证通过\n\n✅ Mac摄像头 → RTMPS → Cloudflare → Web播放","x":-530,"y":-1140,"width":450,"height":205,"color":"6"},
  9. {"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":-220,"width":280,"height":200,"color":"1"},
  10. {"id":"ip_camera","type":"text","text":"**IP摄像头**\n(ONVIF)\n\n协议:RTSP\n\n状态:❌ 待接入","x":-1050,"y":200,"width":350,"height":250,"color":"1"},
  11. {"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":"4"},
  12. {"id":"browser","type":"text","text":"**浏览器播放**\n\n播放方式:\n- Cloudflare iframe ✅\n- HLS.js ✅\n- WebRTC/WHEP\n\n延迟:2-5秒 (HLS)","x":260,"y":-240,"width":410,"height":250,"color":"3"},
  13. {"id":"web_frontend","type":"text","text":"**tg-live-game-web**\n前端应用\n\n技术栈:Vue 3 + TypeScript + Vite\n\n功能:\n- 摄像头管理\n- 直播管理\n- 视频播放 (HLS/iframe)\n- Stream测试页 ✅\n\n端口:localhost:3000","x":260,"y":-658,"width":410,"height":330,"color":"5"}
  14. ],
  15. "edges":[
  16. {"id":"edge_mac_stream","fromNode":"mac_camera","fromSide":"right","toNode":"stream_service","toSide":"left","label":"AVFoundation"},
  17. {"id":"edge_stream_cf","fromNode":"stream_service","fromSide":"bottom","toNode":"cloudflare_stream","toSide":"top","label":"RTMPS ✅"},
  18. {"id":"edge_cf_browser","fromNode":"cloudflare_stream","fromSide":"right","toNode":"browser","toSide":"left","label":"HLS ✅"},
  19. {"id":"edge_hono_cf","fromNode":"hono_backend","fromSide":"bottom","toNode":"cloudflare_stream","toSide":"left","label":"API"},
  20. {"id":"edge_web_hono","fromNode":"web_frontend","fromSide":"left","toNode":"hono_backend","toSide":"right","label":"/api/stream"},
  21. {"id":"edge_web_browser","fromNode":"web_frontend","fromSide":"bottom","toNode":"browser","toSide":"top","label":"VideoPlayer"},
  22. {"id":"edge_ip_java","fromNode":"ip_camera","fromSide":"right","toNode":"java_service","toSide":"left","color":"1","label":"RTSP (待实现)"},
  23. {"id":"edge_java_cf","fromNode":"java_service","fromSide":"top","toNode":"cloudflare_stream","toSide":"bottom","color":"1","label":"WHIP (待实现)"},
  24. {"id":"edge_cf_live","fromNode":"cloudflare_stream","fromSide":"right","toNode":"live_input","toSide":"left","label":"实例"}
  25. ]
  26. }