Lib x.264 tests were performed on bare-metal single socket servers with equivalent memory, networking and storage configurations for each of the platforms shown. The processors tested here are: AMD EPYC 7763 "Milan"; Intel Xeon 8380 "Ice Lake"; Ampere Altra Q80-30; Ampere Altra Max M128-30.
x264 was benchmarked using “vbench: a Benchmark for Video Transcoding in the Cloud, a benchmark for the emerging video-as-a-service workload”, available at ARCADE Lab . Vbench’s 15 input videos were algorithmically selected to represent a large commercial corpus of millions of videos based on resolution, framerate, and complexity. The "Upload" and "Video on Demand" configurations were used to evaluate performance and power usage. Upload uses a single pass transcoding without degrading the input video quality which represents the initial upload encoding to a video service, requiring speed and quality. The Video on Demand (VoD) configuration uses a 2 pass transcoding that requires speed and improved compression without degrading video quality. The VoD first pass collects statistics used in the second pass to allocate more bits when encoding complex vs. simple frames.
To maximize ffmpeg throughput, multiple ffmpeg instances equal to the number of CPU cores available on the socket were run, using one ffmpeg thread per instance. All ffmpeg instances were run on one socket with a dedicated CPU core using numactl to set affinity. The average time to transcode the 15 vbench input files for each ffmpeg process and the socket level power usage were reported. To minimize OS overhead, the ffmpeg binary, and all input and output files were stored on a ramdisk. The Ampere Altra Max M128- 30 processor was compared to Intel® Xeon® Platinum 8380 (Ice Lake) and AMD EPYC™ 7763 (Milan) running CentOS 8.4 with 4.18 kernel. The latest available versions of ffmpeg version and libx264 with gcc 11 were used on all platforms.