diff --git a/server/helpers/ffmpeg-utils.ts b/server/helpers/ffmpeg-utils.ts index 13bce7d30..ab187aa59 100644 --- a/server/helpers/ffmpeg-utils.ts +++ b/server/helpers/ffmpeg-utils.ts @@ -1,7 +1,7 @@ import * as ffmpeg from 'fluent-ffmpeg' import { join } from 'path' import { VideoResolution } from '../../shared/models/videos' -import { CONFIG, VIDEO_TRANSCODING_FPS } from '../initializers' +import { CONFIG, VIDEO_TRANSCODING_FPS, FFMPEG_NICE } from '../initializers' import { unlinkPromise } from './core-utils' import { processImage } from './image-utils' import { logger } from './logger' @@ -56,7 +56,7 @@ async function generateImageFromVideoFile (fromPath: string, folder: string, ima try { await new Promise((res, rej) => { - ffmpeg(fromPath) + ffmpeg(fromPath, { 'niceness': FFMPEG_NICE.THUMBNAIL }) .on('error', rej) .on('end', () => res(imageName)) .thumbnail(options) @@ -84,7 +84,7 @@ type TranscodeOptions = { function transcode (options: TranscodeOptions) { return new Promise(async (res, rej) => { - let command = ffmpeg(options.inputPath) + let command = ffmpeg(options.inputPath, { 'niceness': FFMPEG_NICE.TRANSCODING }) .output(options.outputPath) .outputOption('-threads ' + CONFIG.TRANSCODING.THREADS) .renice(5) // we don't want to make the system unrepsonsive diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts index 6256cf38e..bec343bb7 100644 --- a/server/initializers/constants.ts +++ b/server/initializers/constants.ts @@ -316,6 +316,11 @@ const VIDEO_RATE_TYPES: { [ id: string ]: VideoRateType } = { DISLIKE: 'dislike' } +const FFMPEG_NICE: { [ id: string ]: number } = { + THUMBNAIL: 2, // 2 just for don't blocking servers + TRANSCODING: 15 +} + const VIDEO_CATEGORIES = { 1: 'Music', 2: 'Films', @@ -570,6 +575,7 @@ export { VIDEO_RATE_TYPES, VIDEO_MIMETYPE_EXT, VIDEO_TRANSCODING_FPS, + FFMPEG_NICE, JOB_REQUEST_TIMEOUT, JOB_REQUEST_TTL, USER_PASSWORD_RESET_LIFETIME,