2.2 KiB
2.2 KiB
LED 大屏投放平台
面向 14880 x 3510 LED 大屏的双 GPU 服务器投放平台。
当前架构:
控制服务
-> WebSocket 同步协议
-> 左 GPU 服务器本地渲染 left tile
-> 右 GPU 服务器本地渲染 right tile
-> 每台服务器 4 路 4K 输出
-> 拼控 / LED 控制器物理拼接
WebSocket 只传场景、动作、时间轴、ACK 和性能指标,不传超大视频流。画面由两台 GPU 服务器各自在本地渲染。
启动
第一次启动:
python -m venv .venv
python -m pip install -r requirements.txt
python -m led_platform.cli serve
已有环境后:
python -m led_platform.cli serve
或者直接用 uvicorn:
uvicorn led_platform.main:app --host 0.0.0.0 --port 8000
查看地址:
python -m led_platform.cli urls
常用地址:
- 控制台:http://127.0.0.1:8000/
- 左输出:http://127.0.0.1:8000/output/left
- 右输出:http://127.0.0.1:8000/output/right
- 健康检查:http://127.0.0.1:8000/healthz
- 同步状态:http://127.0.0.1:8000/api/sync/status
生产输出端直接用浏览器打开:
左 GPU 服务器:http://控制服务IP:8000/output/left
右 GPU 服务器:http://控制服务IP:8000/output/right
操作
- 启动控制服务。
- 打开控制台
http://127.0.0.1:8000/。 - 左输出端打开
/output/left。 - 右输出端打开
/output/right。 - 在控制台点击场景切换或局部动作。
- 观察控制台右侧的节点、FPS、frame time、RTT、clock offset、ACK 状态。
项目结构
led_platform/
api/ HTTP 和 WebSocket 路由
core/ 配置、时钟
domain/ 协议和领域模型
services/ 场景、tile、同步协调、WebSocket hub
web/static/ 控制台和输出端前端
main.py FastAPI 应用入口
cli.py 跨平台命令行入口
runtime.py 应用依赖装配
config/
scenes.json 场景配置
tiles.json 左右 GPU 服务器和 4 路 4K 输出映射
tests/
test_api.py
test_sync.py
test_tiles.py
验证
python -m pytest -q
python -m compileall led_platform tests
node --check led_platform/web/static/output/main.js
node --check led_platform/web/static/admin/main.js