Nice ffmpeg to 15 and 2
authorJorropo <jorropo.pgm@gmail.com>
Fri, 27 Jul 2018 09:45:05 +0000 (11:45 +0200)
committerChocobozzz <me@florianbigard.com>
Wed, 1 Aug 2018 08:57:13 +0000 (10:57 +0200)
Niceness 15 for video conversionNiceness 2 for image generation
(niceness 2 doesn't make it slower, just don't block servers and other
app)

server/helpers/ffmpeg-utils.ts
server/initializers/constants.ts

index 13bce7d3076dfa70552917a6294206bfbca299df..ab187aa59319625ad19ecc14c649807688a48aeb 100644 (file)
@@ -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<string>((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<void>(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
index 6256cf38e9dfaf8b0e746eedb30ada9debbc3a84..bec343bb7c4a33ef366384e0ab34d6fed16ae9e3 100644 (file)
@@ -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,