因此,我正在尝试找出在商业规模上使用 FFMPEG 进行转码的最佳方法。我目前只有非常占用 CPU 的云实例,它们运行 FFMPEG,并将参数设置为速度和质量之间的平衡。但是,我现在正在寻找一个长期解决方案,让我每天可以真正转码数百个视频文件,一次可以转码几十个。所以我研究了 GPU 加速,似乎由于压缩算法的结构方式,CPU 通常比 GPU 更快(更多内容请参见这里)。那么接下来是专用硬件,是否有某种专用的 h.264 / h.264 编码器我可以获得并物理安装在我的服务器上,以使 FFMPEG 转码速度飞快?
答案1
您需要了解,硬件编码器通常会在相同比特率下生成质量稍低的图像(或在相同质量下生成更大的文件)。如果可以的话,您最好的选择是英特尔 CPU 上的快速同步,或 Nvidia GPU 上的 nvenc。如果您使用 Nvidia,请务必检查卡上的规格,因为它们中的大多数仅限于 2 个并行编码。
答案2
硬件编码器通常用于实时编码,比依赖通用操作系统的软件提供更高的稳定性。
此外,硬件编码器仅限于一组特定的选项,而软件编码器则对任何可以想到的选项都开放。开发硬件编码器需要花费数百万美元,而且它根本不是一个灵活的事情。例如,Nvidia NVENC 芯片目前还不支持任何 4:2:2 色彩空间配置文件(但未来几代会支持)。为什么 Nvidia 不制造没有所有图形功能的编码器板?……那是因为这个行业没有钱。
假设您想要将编码结果存储为“硬盘上的文件”,那么硬件编码器不适合您。据我所知,任何专业的硬件编码器都是专为网络分发和“实时”使用而设计的。
因此,只要您处于云环境中,最好使用 CPU 编码,如果您想要速度,就选择频率最高的 CPU。