modify: 视频推流
This commit is contained in:
@@ -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, "
|
||||
|
||||
Reference in New Issue
Block a user