如何限制FFmpeg调用的CPU负载?已尝试线程参数无效
解决FFmpeg检查视频完整性时CPU占用过高的问题
你当前用于检查视频完整性的命令是:
ffmpeg -v error -i input.mp4 -f null -
你尝试的-threads 1等参数无效,核心原因是参数顺序错误:FFmpeg的参数遵循「全局参数 → 输入参数 → 输出参数」的顺序,-threads如果要限制解码器(处理输入文件时的线程数),必须放在-i之前。
正确的命令应该是:
ffmpeg -v error -threads 1 -i input.mp4 -f null -
另外补充两个额外的CPU限制方案:
- 用
-nice调整进程优先级,降低它抢占CPU的优先级,比如添加-nice 10(数值越大优先级越低,范围为-20到19),命令变为:ffmpeg -v error -nice 10 -threads 1 -i input.mp4 -f null - - 如果你使用Linux系统,还可以用
taskset命令将FFmpeg绑定到指定CPU核心,比如只允许它使用第0号核心:taskset -c 0 ffmpeg -v error -i input.mp4 -f null -
至于-filter_threads和-filter_complex_threads无效的原因,是因为你的命令里没有用到任何滤镜(filter),这两个参数仅对滤镜处理的线程数生效,自然不会起作用。
内容的提问来源于stack exchange,提问作者finefoot
相关产品推荐
相关产品推荐

