FFmpeg中的线程计数选项是否可以将FASTEST转换为h264?

S B*_*S B 25 multithreading ffmpeg h.264

我需要在使用FFmpeg将视频转换为h264时最大化速度

  • 源视频的任何输入格式
  • 用户的计算机可以包含任意数量的核心
  • 功耗和内存消耗不是问题

当然,有很多选项可以调整,但这个问题特别关于选择最佳-thread <count>选项.我试图找到一个理想的线程计数作为

  • 没有.核心
  • 输入视频格式
  • h264友好的价值可能吗?
  • 上面遗漏了什么?

我知道默认-thread 0遵循单线程每核心方法,这应该是最佳的.但我不确定这是时间还是空间优化.此外,在某些测试用例中,我看到更多的线程(比如我的双核测试机上的4个线程)比默认更快.

任何其他方向,比如配置选项wrt线程,值得追求?

d33*_*ika 14

我发现threads不能很好地利用所有核心,超线程根本就没有被使用.我可以提出的一个解决方案是并行运行3到4个ffmpeg进程,请参阅:https://superuser.com/questions/538164/how-many-instances-of-ffmpeg-commands-can-i-run -in-parallel/547340#547340这种方法最终完全使用所有内核,并且比单个命令选项中的单个输入,多个输出更快.


jes*_*sup 2

如果您的“双核”具有超线程,那么 2 个核心可能是正确的。超出虚拟核心数量(包括超线程)的增益不太可能,但也许由于 FFmpeg 的内部问题,这可能是真的。