java - 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利用率的标志。
解决方案
您可以使用cgroup
包装器来实现这一点。
https://github.com/haosdent/jcgroup
在线程中运行您的 ffmpeg 代码,将此线程分配给创建cgroup
的具有所需 cpu 共享
或者ffmpeg
用一个不错的命令运行,比如nice -n 19 ffmpeg -y ...
推荐阅读
- java - Android Studio Firebase 获取数据
- python - 始终在 Python 日志记录文件中包含特定文本作为最后一行?
- c# - DatePicker 其他格式的默认日期
- php - 尽管@if() 查询不是真的 Laravel 5.8,但我得到了真实的
- macos - Is OpenGL on macOS deprecated?
- r - 覆盖内部基本函数的 R 测试
- java - 获取数组列表
值升序 - java - Spring SseEmitter.complete() 是否应该触发 EventSource 重新连接 - 如何在服务器端关闭连接
- regex - Vim 和 LaTeX。如何使用语法隐藏在 Vim 中将 "\ref{name}" 隐藏为 "[name]"
- ios - 更改 SKTileMapNode 中特定图块的颜色