From 2fe978744e5b74eb824e4d79c1bb9b840169f125 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 21 Apr 2023 14:58:43 +0200 Subject: [PATCH] Remove transcoding scripts We don't have enough energy to maintain them --- package.json | 2 - scripts/create-transcoding-job.ts | 112 ----------------------------- scripts/print-transcode-command.ts | 48 ------------- 3 files changed, 162 deletions(-) delete mode 100755 scripts/create-transcoding-job.ts delete mode 100644 scripts/print-transcode-command.ts diff --git a/package.json b/package.json index 45ecf953b..82304a710 100644 --- a/package.json +++ b/package.json @@ -44,11 +44,9 @@ "start": "node dist/server", "start:server": "node dist/server --no-client", "update-host": "node ./dist/scripts/update-host.js", - "create-transcoding-job": "node ./dist/scripts/create-transcoding-job.js", "regenerate-thumbnails": "node ./dist/scripts/regenerate-thumbnails.js", "create-import-video-file-job": "node ./dist/scripts/create-import-video-file-job.js", "create-move-video-storage-job": "node ./dist/scripts/create-move-video-storage-job.js", - "print-transcode-command": "node ./dist/scripts/print-transcode-command.js", "test": "bash ./scripts/test.sh", "help": "bash ./scripts/help.sh", "generate-cli-doc": "bash ./scripts/generate-cli-doc.sh", diff --git a/scripts/create-transcoding-job.ts b/scripts/create-transcoding-job.ts deleted file mode 100755 index c77a5805f..000000000 --- a/scripts/create-transcoding-job.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { program } from 'commander' -import { isUUIDValid, toCompleteUUID } from '@server/helpers/custom-validators/misc' -import { computeResolutionsToTranscode } from '@server/helpers/ffmpeg' -import { CONFIG } from '@server/initializers/config' -import { buildTranscodingJob } from '@server/lib/video' -import { VideoState, VideoTranscodingPayload } from '@shared/models' -import { initDatabaseModels } from '../server/initializers/database' -import { JobQueue } from '../server/lib/job-queue' -import { VideoModel } from '../server/models/video/video' - -program - .option('-v, --video [videoUUID]', 'Video UUID') - .option('-r, --resolution [resolution]', 'Video resolution (integer)') - .option('--generate-hls', 'Generate HLS playlist') - .parse(process.argv) - -const options = program.opts() - -if (options.video === undefined) { - console.error('All parameters are mandatory.') - process.exit(-1) -} - -if (options.resolution !== undefined && Number.isNaN(+options.resolution)) { - console.error('The resolution must be an integer (example: 1080).') - process.exit(-1) -} - -run() - .then(() => process.exit(0)) - .catch(err => { - console.error(err) - process.exit(-1) - }) - -async function run () { - await initDatabaseModels(true) - - const uuid = toCompleteUUID(options.video) - - if (isUUIDValid(uuid) === false) { - console.error('%s is not a valid video UUID.', options.video) - return - } - - const video = await VideoModel.loadFull(uuid) - if (!video) throw new Error('Video not found.') - - const dataInput: VideoTranscodingPayload[] = [] - const maxResolution = video.getMaxQualityFile().resolution - - // FIXME: check the file has audio - const hasAudio = true - - // Generate HLS files - if (options.generateHls || CONFIG.TRANSCODING.WEBTORRENT.ENABLED === false) { - const resolutionsEnabled = options.resolution - ? [ parseInt(options.resolution) ] - : computeResolutionsToTranscode({ input: maxResolution, type: 'vod', includeInput: true, strictLower: false, hasAudio }) - - for (const resolution of resolutionsEnabled) { - dataInput.push({ - type: 'new-resolution-to-hls' as 'new-resolution-to-hls', - videoUUID: video.uuid, - resolution, - - hasAudio, - - copyCodecs: false, - isNewVideo: false, - isMaxQuality: maxResolution === resolution, - autoDeleteWebTorrentIfNeeded: false - }) - } - } else { - if (options.resolution !== undefined) { - dataInput.push({ - type: 'new-resolution-to-webtorrent' as 'new-resolution-to-webtorrent', - videoUUID: video.uuid, - - createHLSIfNeeded: true, - - hasAudio, - - isNewVideo: false, - resolution: parseInt(options.resolution) - }) - } else { - if (video.VideoFiles.length === 0) { - console.error('Cannot regenerate webtorrent files with a HLS only video.') - return - } - - dataInput.push({ - type: 'optimize-to-webtorrent' as 'optimize-to-webtorrent', - videoUUID: video.uuid, - isNewVideo: false - }) - } - } - - JobQueue.Instance.init() - - video.state = VideoState.TO_TRANSCODE - await video.save() - - for (const d of dataInput) { - await JobQueue.Instance.createJob(await buildTranscodingJob(d)) - - console.log('Transcoding job for video %s created.', video.uuid) - } -} diff --git a/scripts/print-transcode-command.ts b/scripts/print-transcode-command.ts deleted file mode 100644 index ac60ff8a5..000000000 --- a/scripts/print-transcode-command.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { program } from 'commander' -import ffmpeg from 'fluent-ffmpeg' -import { exit } from 'process' -import { buildVODCommand, runCommand, TranscodeVODOptions } from '@server/helpers/ffmpeg' -import { VideoTranscodingProfilesManager } from '@server/lib/transcoding/default-transcoding-profiles' - -program - .arguments('') - .requiredOption('-r, --resolution [resolution]', 'video resolution') - .action((path, cmd) => { - if (cmd.resolution !== undefined && Number.isNaN(+cmd.resolution)) { - console.error('The resolution must be an integer (example: 1080).') - process.exit(-1) - } - - run(path, cmd) - .then(() => process.exit(0)) - .catch(err => { - console.error(err) - process.exit(-1) - }) - }) - .parse(process.argv) - -async function run (path: string, cmd: any) { - const options = { - type: 'video' as 'video', - inputPath: path, - outputPath: '/dev/null', - - availableEncoders: VideoTranscodingProfilesManager.Instance.getAvailableEncoders(), - profile: 'default', - - resolution: +cmd.resolution - } as TranscodeVODOptions - - let command = ffmpeg(options.inputPath) - .output(options.outputPath) - - command = await buildVODCommand(command, options) - - command.on('start', (cmdline) => { - console.log(cmdline) - exit() - }) - - await runCommand({ command }) -} -- 2.41.0