2010-12-30 145 views
13

私はC#Windows Formsアプリケーションの中でFFMpegを呼び出しています。それはCPUを(常に90%以上)非常に多く使用するので、私のスレッドはどれも作業を続けることができません。このCPU使用量を制限する方法はありますか?FFMpegのCPU使用量をどのように制限できますか?

私はProcess.PriorityClassをPriorityClass.BelowNormalに設定しようとしましたが、これはffmpegプロセスを完全にブロックしました。

私はffmpegを利用する多くのプログラムを見るので、これを行う方法があると確信しています。

助けてください。

答えて

20

FFMpegをCPU使用率に制限することはできませんが、FFMpegコールで-threadsパラメータを設定することができます。もし4コアの場合は、約50%のCPUに制限する-threads 2に設定してください。

もう1つの解決策は、FFMpegプロセスの優先度をアプリケーションよりも低くすることです。

+0

私のCPUが単一のコアを持っているなら、私はそれの優先順位を下げるべきだと提案しています。これは本当にこれを行うための最善の方法ですか? –

+1

@Mert、はい、ハイパースレッディングのないシングルコアCPUの場合は、優先順位を下げることをお勧めします。メディアエンコーディングはCPUを大量に消費する作業です。あらゆる種類のスケーラビリティを探している場合は、アプリケーションと同じマシンでFFMpegを実行しないことを検討する必要があります。その場合、クライアント/サーバーソリューションは、 。私はそれがあなたの質問に答えたと思う。 –

関連する問題