C# 如何限制FFMpeg CPU的使用?

C# 如何限制FFMpeg CPU的使用?,c#,performance,ffmpeg,C#,Performance,Ffmpeg,我在C#Windows窗体应用程序中调用FFMpeg。由于它使用了如此多的CPU(几乎100%),我的线程都无法继续工作。有没有办法限制CPU的使用 下面是我的工作代码 Process ffmpeg = new Process(); ffmpeg.StartInfo.UseShellExecute = false; ffmpeg.StartInfo.FileName = '..\ffmpeg.exe' ffmpeg.StartInfo.CreateNoWindow = true; ffmpeg.

我在C#Windows窗体应用程序中调用FFMpeg。由于它使用了如此多的CPU(几乎100%),我的线程都无法继续工作。有没有办法限制CPU的使用

下面是我的工作代码

Process ffmpeg = new Process();
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.FileName = '..\ffmpeg.exe'
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.Start();
我尝试将Process.PriorityClass设置为PriorityClass.BelowNormal,但这完全阻止了ffmpeg进程


还有其他出路吗?

这里列出的解决方案

是将FFMpeg使用的线程数限制为小于计算机上可用的内核数

根据您的评论,您可以提供

Process ffmpeg=新流程();
ffmpeg.StartInfo.UseShellExecute=false;
ffmpeg.StartInfo.FileName=“..\ffmpeg.exe”;

ffmpeg.StartInfo.Arguments=“-threads 2”//可能是重复的,但我如何使用-threads参数呢?我找不到合适的教程来实现-threads。请将-threads作为参数传递给FFMPeg。我将很快发布一个示例。非常感谢:)让我尝试一下我设置了-threads=1,但它对cpu使用率没有任何影响。参数的语法是“-threads 1”not“-threads=1”。你的代码中有等号吗?如果是,请将其拆下。
Process ffmpeg = new Process();
ffmpeg.StartInfo.UseShellExecute = false;
ffmpeg.StartInfo.FileName = "..\ffmpeg.exe";
ffmpeg.StartInfo.Arguments = "-threads 2";  // <=== Add this line
ffmpeg.StartInfo.CreateNoWindow = true;
ffmpeg.Start();