使用 ffmpeg 转换视频时 CPU 使用率达到 100% 时如何降低

使用 ffmpeg 转换视频时 CPU 使用率达到 100% 时如何降低

我们使用 ffmpeg 将视频转换为特定格式。服务器的 CPU 使用率已达到 100%,所以我的网站正在关闭。这意味着 ffmpeg 进程对我的主服务器有很大的影响。

答案1

这似乎是一台小型服务器,具有 4 GB RAM 和虚拟双核 CPU,很可能使用共享资源。显然,这台机器无法处理视频编码任务同时为一个网站提供服务,除非你在视频编码完成所需的时间方面做出妥协。

在Linux下你可以运行nice降低进程的优先级。

例如,运行:

nice ffmpeg -i <input> <output>

“niceness”值的范围是 -20 到 19,值越高,进程的优先级越低。如果没有其他选项,nice则将进程的值加 10,默认情况下为 0。

话虽如此,我还是建议您不要在同一台机器上运行 Web 服务器和密集处理任务,除非您可以以某种方式将它们分开,以免高资源消耗导致您的网站崩溃。

答案2

除了 slhck 的建议之外,如果还不够好,nice您还可以使用选项限制编码线程。-threadsnice

另一种选择是将编码卸载到硬件上,例如 nvenc(如果您的服务器支持的话)。

答案3

使用此参数:-threads 1适用于较少的 CPU 核心。

相关内容