onQueue('general_video'); $this->video_id = $video_id; } /** * Execute the job. */ public function handle(): void { if ($this->batch()?->cancelled()) { return; } $video = Video::with('video_elements', 'latest_render')->find($this->video_id); if (! $video) { return; } $video_render = $video->latest_render; $video_render->status = RenderConstants::STATUS_RENDERING; $video_render->processing_started_at = now(); $video_render->save(); $output = FfmpegVideoRenderer::render($video); if ($output->success) { $video_render->status = RenderConstants::STATUS_SUCCEEDED; $saved_media = MediaEngine::addMedia( MediaEngine::getCollectionKeyByOwnerMediaType('user', 'video'), 'video', MediaEngine::USER_RENDERED, MediaEngine::USER, $output->name, file_get_contents($output->path), ); $video_render->completed_video_uuid = $saved_media->uuid; $video_render->completed_video_full_url = MediaEngine::getMediaCloudUrl($saved_media); $video_render->processing_finished_at = now(); $video_render->save(); } else { $video_render->processing_finished_at = now(); $video_render->status = RenderConstants::STATUS_FAILED; $video_render->save(); throw $output->exception; } } }