From 0c9668f77901e7540e2c7045eb0f2974a4842a69 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 21 Apr 2023 14:55:10 +0200 Subject: Implement remote runner jobs in server Move ffmpeg functions to @shared --- shared/models/server/job.model.ts | 43 +++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) (limited to 'shared/models/server/job.model.ts') diff --git a/shared/models/server/job.model.ts b/shared/models/server/job.model.ts index 9c0b5ea56..16187d133 100644 --- a/shared/models/server/job.model.ts +++ b/shared/models/server/job.model.ts @@ -18,6 +18,7 @@ export type JobType = | 'after-video-channel-import' | 'email' | 'federate-video' + | 'transcoding-job-builder' | 'manage-video-torrent' | 'move-to-object-storage' | 'notify' @@ -41,6 +42,10 @@ export interface Job { createdAt: Date | string finishedOn: Date | string processedOn: Date | string + + parent?: { + id: string + } } export type ActivitypubHttpBroadcastPayload = { @@ -139,30 +144,28 @@ interface BaseTranscodingPayload { export interface HLSTranscodingPayload extends BaseTranscodingPayload { type: 'new-resolution-to-hls' resolution: VideoResolution + fps: number copyCodecs: boolean - hasAudio: boolean - - autoDeleteWebTorrentIfNeeded: boolean - isMaxQuality: boolean + deleteWebTorrentFiles: boolean } export interface NewWebTorrentResolutionTranscodingPayload extends BaseTranscodingPayload { type: 'new-resolution-to-webtorrent' resolution: VideoResolution - - hasAudio: boolean - createHLSIfNeeded: boolean + fps: number } export interface MergeAudioTranscodingPayload extends BaseTranscodingPayload { type: 'merge-audio-to-webtorrent' resolution: VideoResolution - createHLSIfNeeded: true + fps: number } export interface OptimizeTranscodingPayload extends BaseTranscodingPayload { type: 'optimize-to-webtorrent' + + quickTranscode: boolean } export type VideoTranscodingPayload = @@ -258,3 +261,27 @@ export interface FederateVideoPayload { videoUUID: string isNewVideo: boolean } + +// --------------------------------------------------------------------------- + +export interface TranscodingJobBuilderPayload { + videoUUID: string + + optimizeJob?: { + isNewVideo: boolean + } + + // Array of jobs to create + jobs?: { + type: 'video-transcoding' + payload: VideoTranscodingPayload + priority?: number + }[] + + // Array of sequential jobs to create + sequentialJobs?: { + type: 'video-transcoding' + payload: VideoTranscodingPayload + priority?: number + }[][] +} -- cgit v1.2.3