我使用 Ryzen 3700X 上的 ffmpeg 转换了视频,所有核心都使用了 100%。现在我在一台拥有 2x Xeon E5-4657L v2 和 192GB RAM 的服务器上运行了同样的对话。令人惊讶的是,所有核心都得到了使用,但几乎没有一个核心达到了 100%。大多数核心的使用率在 20-70% 左右,这导致平均使用率约为 40-70%,如下所示:
iotop --only
显示写入速度不超过 ~300K/s,这是意料之中的,因为 Ryzen 上的磁盘也几乎没有使用。但我想知道为什么 Xeon 没有完全用于加速转换过程?我不指望所有 24 个核心都得到使用,但是我预计至少有 8 个核心像 Ryzen 一样毫无例外地以 100% 的速度运行。
我也尝试在 SSD 上运行相同的对话(我使用了 HDD),速度仅快 1.5 秒。
如果不是 CPU,也不是磁盘,而是内存量(192GB 中只有 4GB 在使用),是什么限制了 CPU?是内存速度(1600 Mhz DDR3,读取速度sudo lshw -short -C memory
)吗?Ryzen 系统已经具有 2400 Mhz 的 DDR4。
我在 Xeon 服务器上使用 Ubuntu 20.04 LTS 和 ffmpeg v4.2.4。我的示例用例是将 H264 视频转换为 H265 并调整 CRF:
time ffmpeg -i C0052.MP4 -hide_banner -vcodec libx265 -crf 28 C0052_linux_x265_crf28.mp4
我尝试使用 H264,这样只是 CRF 发生了变化。CPU 核心仍然只使用了约 50-70%,编解码器似乎对此没有太大影响。只是通过更改编解码器,RAM 使用量从近 4GB 增加到了 8GB。