首页 > 解决方案 > ffmpeg 正在消耗 100% 的 CPU

问题描述

我正在尝试在 Java 应用程序的 ffmpeg 命令下运行。

ffmpeg -y -v error -i ~/Downloads/call.wav -af "volume=enable='between(t,5,7)':volume=0" ~/Downloads/call_0.wav

我使用以下依赖项作为 ffmpeg 包装器

<dependency>
  <groupId>net.bramp.ffmpeg</groupId>
  <artifactId>ffmpeg</artifactId>
  <version>0.6.2</version>
</dependency>

我正在为 1000 个文件循环运行此操作。我可以看到 CPU 利用率立即达到 100% 并一直保持到工作完成。我正在使用 c5a.large 实例。ffmpeg中是否有任何可以优化CPU利用率的标志。

标签: javaspring-bootffmpeg

解决方案


您可以使用cgroup包装器来实现这一点。

https://github.com/haosdent/jcgroup

在线程中运行您的 ffmpeg 代码,将此线程分配给创建cgroup的具有所需 cpu 共享

或者ffmpeg用一个不错的命令运行,比如nice -n 19 ffmpeg -y ...


推荐阅读