瀏覽代碼

#3024 Option to limit number of threads used by ffmpeg for video conversion

Alex Trofimov 6 年之前
父節點
當前提交
a0a3cd0f9d
共有 1 個文件被更改,包括 13 次插入 和 1 次删除
  1. 13 1
      inc/classes/BxDolTranscoderVideo.php

+ 13 - 1
inc/classes/BxDolTranscoderVideo.php

@@ -209,7 +209,7 @@ class BxDolTranscoderVideo extends BxDolTranscoder implements iBxDolFactoryObjec
             @unlink($sFileOut);
         }
 
-        $sCommand = escapeshellcmd(BX_SYSTEM_FFMPEG) . ' -y -i ' . escapeshellarg($sFile) . ' ' . $sOptions . ' ' . escapeshellarg($sFileOut) . ' 2>&1';
+        $sCommand = escapeshellcmd(BX_SYSTEM_FFMPEG) . ' -y ' . $this->_getFfmpegThreadsParams() . ' -i ' . escapeshellarg($sFile) . ' ' . $this->_getFfmpegThreadsParams() . ' ' . $sOptions . ' ' . escapeshellarg($sFileOut) . ' 2>&1';
         $sOutput = `$sCommand`;
         $this->addToLog("\n---\n{$sCommand}\n{$sOutput}\n");
 
@@ -284,6 +284,18 @@ class BxDolTranscoderVideo extends BxDolTranscoder implements iBxDolFactoryObjec
 
         return '640x360'; // should never happen
     }
+
+    protected function _getFfmpegThreadsParams ()
+    {
+        $s = '';
+
+        // optionally limit number of threads
+        if (defined('BX_SYSTEM_FFMPEG_THREAD') && ($iThreads = (int)constant('BX_SYSTEM_FFMPEG_THREAD'))) {
+            $s .= '-threads ' . $iThreads;
+        }
+
+        return $s;
+    }
 }
 
 /** @} */