繁体   English   中英

如何限制 FFMpeg CPU 使用率?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM