我需要执行一些视频编码,但我使用的大多数应用程序(或设置)都无法充分利用我的工作站。
我使用两个 Xeon 处理器,每个处理器有 8 个内核,具有超线程,或者 32 个线程。我可以运行 win 7 或任何版本的 Linux(首选 debian)。
在 Windows 上,所有 Handbrake 预设仅使用 x264 总处理器功率的 40%。在 Linux 上,libav 和 ffmpeg 也使用约 40%。
我非常怀疑硬盘是限制因素。我使用本地 raid 0 ssd 阵列作为视频源,使用 raid 5 ssd 阵列作为视频输出。正常传输速度约为 500 MB/s,因此我认为不存在 I/O 瓶颈。
我认为问题可能与超线程有关,所以我将其关闭。但没什么帮助。所以我又把它打开了。
那么,x264 编码中是否存在非多线程的方面?此外,您是否推荐使用其他编码器?最后,非常感谢您对这个问题的任何评论。谢谢
答案1
您可能无法在 CPU 方面为单个视频最大化此装备,因为视频编码器并非令人尴尬的并行(即,能够扩展到尽可能多的线程)。如果您有几个同时进行的进程,您肯定能够最大化这一点。
不幸的是,如果不专门设计一个以这种方式工作的编解码器,你无法使用很多 CPU 线程对单个视频流进行编码。我不确定是否有任何现成的方法。
您是否考虑过使用某种 GPU(处理器上的 Intel QSV,或者 Radeon 或 GeForce 卡上的 OpenCL)来进行 GPU 加速编码?在我使用 Windows 8 上的 Radeon HD7970 和 Sony Vegas Pro 进行的测试中,在 Radeon 的帮助下,编码视频需要 15 分钟,而使用我的 Core i7 3770K CPU(不使用 QSV)则需要 90 分钟。
另外,你可能想读这有关 x264 中线程的资料文档。找出您使用的版本(基于帧或基于切片的线程)并权衡利弊,如该文件中所述。
答案2
我的处理器配置与您基本相同,对于我所做的所有编辑和编码工作,我都使用了 Adobe Media 编码器和 Adobe Premier Pro。它们旨在充分利用您拥有的配置,并且效果非常好(以下是链接:http://www.adobe.com/ca/products/creativesuite/production.html)。 希望这可以帮助。