modify: 视频推流

This commit is contained in:
2026-07-31 16:53:38 +08:00
parent e3265e40f0
commit 5f6b8c5269
7 changed files with 71 additions and 10 deletions
+12 -1
View File
@@ -27,7 +27,7 @@ async def board_ping(request: BoardPingRequest, worker_id: str = "") -> dict:
设备通过 MQTT 主题 /board_ping 定期(默认 5 秒)上报系统状态。
收到心跳后更新数据库中的设备记录,标记为在线。
"""
from ..global_var import db, heartbeat_timeout
from ..global_var import db, heartbeat_timeout, stream_manager, link_path
board_id = request.BoardId
@@ -82,6 +82,17 @@ async def board_ping(request: BoardPingRequest, worker_id: str = "") -> dict:
await session.commit()
if stream_manager is None:
raise RuntimeError("StreamManager not initialized")
ping_data = json.loads(ping_json)
medias = ping_data.get("Medias", {})
for media in medias:
if media.get("MediaStatus", {}).get("label", "") == "正常":
stream_id = media["MediaName"]
source_url = media["MediaUrl"].replace("/Link", link_path)
await stream_manager.start_stream(stream_id, source_url)
logger.debug(
f"[Heartbeat] {board_id}: temp={request.BoardTemp}, "
f"disk={request.HostDisk.Used}/{request.HostDisk.Total} kB, "