2016-04-27 18 views
-1

メディア処理サーバーをセットアップしようとしています。私はFFMPEGに関する多くの研究を行い、コマンドを書きました。コマンドは次のとおりです。FFMPEGが非常に遅いです

ffmpeg -y -i "bbb_sunflower_2160p_60fps_normal.mp4" -c:v libx264 \ 
-threads 7 -profile:v main -preset ultrafast -vf scale=1920:-1 \ 
"process/video/1080p.mp4" -c:v libx264 -threads 7 -profile:v main \ 
-preset ultrafast -vf scale=1280:-1 "process/video/720p.mp4" -c:v \ 
libx264 -threads 7 -profile:v main -preset ultrafast -vf \ 
scale=854:-1 "process/video/480p.mp4" -vf fps=5/60 \ 
process/image/thumb_%d.jpg 

このコマンドは機能し、完全に動作しますが、汚れが遅いです。

12コアのインテルXeonプロセッサX5650(ハイパースレッディング対応)
64ギガバイトECC DDR3 RAM
250ギガバイトSSDドライブ

しかし、私が使用している場合、これを:ちょうどffmpegのを実行するために専用されている私のサーバーは、以下のスペックを持っていますコマンドを実行すると、サーバーのCPU負荷が約250〜300%低下します。これは、ビデオを処理している間に約2,000%のハングアップを望みます。現在、ビデオを処理する際、サーバーは約17フレーム/秒をレンダリングしています。これは60fpsの10分のビデオを処理するのに非常に時間がかかるでしょう。

答えて

0

これは、有用な情報がほとんどまたはまったくない非常に複雑なコマンドラインです。たとえば、FFmpeg stdout/stderr(多くの有益な情報を含んでいます)を提供していません。考えられる原因:

  • ビデオエンコーディング何か他
  • 多分あなたのボトルネックが(-anとテスト)の音声である(W/Oのスクリーンショット、代わりに3の1つのエンコードを試してみてください)
  • 単に遅すぎますか?

もっと簡単なバージョンをテストし、stdout/stderrを提供することをお勧めします。

2

スケーラです。 ffmpegのスケーラはシングルスレッドですが、そのスレッドが多いシステムではボトルネックになります。出力ごとに異なるプロセスを実行してみてください。

+0

単一のフィルタコンプレックス内ですべてのスケーリングを実行してから、ティーマクサーを使用して別々のファイルを出力すると役立つことがあります。 – Mulvya

1

Windowsを実行している場合は、防御側(および他のウイルスチェッカー)を無効にしてもう一度試してください。それは大きな違いを生み出すことができます。 結果をお知らせください。

これはWindows 10マシン(10倍高速処理)で動作し、上記の問題に対する可能な答えです。明確化(どんな種類のものでも)は求められていませんが、それが助けられたかどうかを知ることは良いことです。