如何使用 x264 编码器库找出并行 运行 编码作业的优化数量

How can I figure out the optimized number of parallel running encoding jobs with the x264 encoder library

我正在将数百个视频批量转换为 mp4 并尝试优化我的方法。

我写了一个节点脚本,它生成 FFMPEG 进程来转换视频。

据我了解,FFMPEG 和 libx264 编码器都已针对多线程支持进行了优化。我在编码器中使用默认线程选项。

我正在尝试找到我应该创建的最佳 FFMPEG 派生进程数。在所有作业的编码太多和减慢与通过作业队列的进程太慢之间似乎存在平衡。

我还想知道为每个编码作业分配特定数量的线程是否比使用默认设置有帮助?

对于我的设置,我使用的是过时的 12 核 Mac Pro 和 24 线程,尽管这个问题是关于找到一般的最佳平衡。

编码视频线程总是以牺牲质量为代价。 libx264 非常擅长线程化,但也不能幸免于此。在我的测试中,大约 4 个线程,您可以开始在低比特率下看到视觉差异。通常情况下,这是可以的,并且是一个值得的权衡来加速编码。

但你没有那样做。您在单个处理器上编码许多视频。因此,最佳情况下,每个编码使用 1 个线程,并行编码的数量与核心数一样多。

这不会加快编码速度,这将花费相同的时间,但完成后会产生更高质量的视频。