完善直播节点监控与边缘代理
This commit is contained in:
1 parent
058bb4b99f
commit
20cd99efa4
19 files changed
+401
-47
No files matched your search
@@ -7,6 +7,7 @@ from services.multicast_detector import multicast_detector
|
||||
from services.transcoder import transcode_mgr
|
||||
from config import settings
|
||||
import json
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class StreamService:
|
||||
@@ -17,13 +18,19 @@ class StreamService:
|
||||
cover_url: str | None = None,
|
||||
scheduled_at: str | None = None) -> Stream:
|
||||
import uuid
|
||||
scheduled_datetime = None
|
||||
if scheduled_at:
|
||||
try:
|
||||
scheduled_datetime = datetime.fromisoformat(scheduled_at.replace("Z", "+00:00"))
|
||||
except ValueError as exc:
|
||||
raise ValueError("预定开播时间格式无效") from exc
|
||||
stream = Stream(
|
||||
title=title,
|
||||
description=description,
|
||||
cover_url=cover_url,
|
||||
stream_key=uuid.uuid4().hex,
|
||||
status=StreamStatus.pending,
|
||||
scheduled_at=scheduled_at,
|
||||
scheduled_at=scheduled_datetime,
|
||||
)
|
||||
self.db.add(stream)
|
||||
await self.db.commit()
|
||||
@@ -113,4 +120,8 @@ class StreamService:
|
||||
"lines": lines,
|
||||
"qualities": [{"label": q["label"], "width": q["width"], "height": q["height"]} for q in settings.qualities],
|
||||
"multicast_available": multicast_detector.is_available(),
|
||||
"selected_node": {
|
||||
"id": best_node["id"],
|
||||
"name": best_node["name"],
|
||||
} if best_node else None,
|
||||
}
|
||||
Reference in new issue
Block a user