我在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进程。
还有其他出路吗?
答案 0 :(得分:3)
此处概述的解决方案
How can I limit FFMpeg CPU usage?
是将FFMpeg使用的线程数限制为小于计算机上可用内核的数量。
跟进您的评论,您可以提供Argument via StartInfo
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();