Record meetings with LiveKit Egress instead of browser capture.
Deploy Ladill Meet / deploy (push) Successful in 52s
Deploy Ladill Meet / deploy (push) Successful in 52s
Server-side room composite egress replaces fragile MediaRecorder DOM capture when enabled, with webhook completion and browser fallback when egress is unavailable. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -9,6 +9,7 @@ use App\Models\Room;
|
||||
use App\Models\Session;
|
||||
use App\Services\Meet\BreakoutService;
|
||||
use App\Services\Meet\ChatService;
|
||||
use App\Services\Meet\Media\LiveKitEgressService;
|
||||
use App\Services\Meet\Media\MediaProviderInterface;
|
||||
use App\Services\Meet\ParticipantPresenter;
|
||||
use App\Services\Meet\RecordingService;
|
||||
@@ -94,6 +95,7 @@ class MeetingRoomController extends Controller
|
||||
'mediaConfigured' => $this->media->isConfigured(),
|
||||
'messages' => $this->chat->recentMessages($session),
|
||||
'activeRecording' => $session->recordings()->where('status', 'recording')->first(),
|
||||
'serverEgressAvailable' => app(LiveKitEgressService::class)->isAvailable(),
|
||||
'watermark' => $room->organization?->securitySetting('watermark_enabled', false),
|
||||
'isWebinar' => $room->isWebinar() || $room->isConference(),
|
||||
'isConference' => $room->isConference(),
|
||||
@@ -514,7 +516,11 @@ class MeetingRoomController extends Controller
|
||||
|
||||
$recording = $this->recordings->start($session, $host);
|
||||
|
||||
return response()->json(['recording_uuid' => $recording->uuid, 'status' => $recording->status]);
|
||||
return response()->json([
|
||||
'recording_uuid' => $recording->uuid,
|
||||
'status' => $recording->status,
|
||||
'capture_mode' => $this->recordings->captureMode($recording),
|
||||
]);
|
||||
}
|
||||
|
||||
public function stopRecording(Request $request, Session $session): JsonResponse
|
||||
@@ -542,6 +548,7 @@ class MeetingRoomController extends Controller
|
||||
return response()->json([
|
||||
'status' => 'processing',
|
||||
'recording_uuid' => $recording->uuid,
|
||||
'capture_mode' => $this->recordings->captureMode($recording),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user