[英]How can I limit FFMpeg CPU usage?
我在 C# Windows 窗体应用程序中调用 FFMpeg。 由于它使用了如此多的 CPU(始终高于 90%),我的线程都无法继续工作。 有没有办法限制这种 CPU 使用率?
我试图将 Process.PriorityClass 设置为 PriorityClass.BelowNormal 但这完全阻止了 ffmpeg 进程。
我相信有一种方法可以做到这一点,因为我看到很多使用 ffmpeg 的程序。
请帮忙。
您不能将 FFMpeg 限制为 CPU 使用的百分比,但您可以在 FFMpeg 调用中设置-threads
参数,如果您有 4 个内核,请尝试将其设置为-threads 2
,这应该将您限制在 50% 左右的 CPU。
另一种解决方案可能是降低 FFMpeg 进程的优先级,使其低于应用程序。
仅适用于试图找到在终端(bash、zsh 或服务器上)中使用的解决方案的人......
nice -n 20 cpulimit -l 60 -i ffmpeg -threads 1 -i in.avi out.mp4
nice
是用于设置优先级的程序。 阅读man nice
知道-n
参数在您的系统中的含义。 在 macOS 上,20 最低,-20 最高。
cpulimit是用于控制 CPU 使用率的开源实用程序(Linux/OS X/FreeBSD)。
在 MacOS 上,这需要 sudo。
检查这个答案: https : //superuser.com/a/214572/458727
我使用 Battle Encoder Shirasé 来降低 FFMPEG。 BES 是开源的,所以观察它的代码可以帮助获得一个想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.