AV1 encoding on Windows is now only 2x slower than x265. With a properly compiled version of FFmpeg, encoding performance is slightly faster than the Alliance for Open Media’s encoder, though output quality is very slightly lower. Congrats to AOM for delivering on their promise to get encoding times down. Thanks for all the help I got from multiple sources, including Google, Visionular, Intel, Sébastien Faure, and others who wish to remain nameless, for improving the accuracy of my recent AV1-related research, which will appear in a future article in Streaming Media Magazine.
Yesterday I reported that the Alliance for Open Media’s aomenc encoder was 70% faster than a version of FFmpeg downloaded from Zeranoe (all tests on Windows). Since then, a video engineer from a large OTT shop forwarded me a version of FFmpeg for testing. Here’s what he said about how he compiled the version.
“Media Autobuild Suite is a very handy tool for compiling popular open source media processing tools like ffmpeg on Windows. It completely automates the entire process.
To get started, read the main readme page on the code repo. There’s a download link. at the top, and an Information section below on how to use it.”
Because my Z840 workstation was busy and because I wanted to test all encodes on a single CPU system, I ran all encodes on a Telestream Gear 2 system equipped with a 6-core (12 with HTT) system configured as shown below. So, you can’t compare any of these encoding times with previous articles.
Here are the results, encoding strings are below.
So, on this system, the version of FFmpeg supplied by the OTT shop contact took only about twice as long to encode the file as x265, and delivered a file higher in quality by about 2 VMAF points. I’ll have full BD-Rate stats in the Streaming Media article.
Kudos to the AOM engineering team for accelerating results to this degree. For perspective, when I first tested AV1, AV1 took about 780 times longer to encode than x265; not it’s down to 2x.
Here are the encoding strings:
Contents
OTT Shop:
C:\ffmpeg\OTTshop\ffmpeg -y -i football_10.mp4 -c:v libaom-av1 -strict -2 -b:v 2700K -g 60 -keyint_min 60 -sc_threshold 0 -row-mt 1 -tile-columns 1 -tile-rows 0 -threads 16 -cpu-used 8 -pass 1 -f matroska NUL &
C:\ffmpeg\OTTshop\ffmpeg -y -i football_10.mp4 -c:v libaom-av1 -strict -2 -b:v 2700K -maxrate 2700K -bufsize 5400k -g 60 -keyint_min 60 -sc_threshold 0 -row-mt 1 -tile-columns 1 -an -tile-rows 0 -threads 16 -cpu-used 3 -pass 2 football_ffmpeg_OTTshop.mkv
FFmpeg
C:\ffmpeg\Zeranoe\ffmpeg -y -i football_10.mp4 -c:v libaom-av1 -strict -2 -b:v 2700K -g 60 -keyint_min 60 -sc_threshold 0 -row-mt 1 -tile-columns 1 -tile-rows 0 -threads 16 -cpu-used 8 -pass 1 -f matroska NUL &
C:\ffmpeg\Zeranoe\ffmpeg -y -i football_10.mp4 -c:v libaom-av1 -strict -2 -b:v 2700K -maxrate 5400K -bufsize 5400k -g 60 -keyint_min 60 -sc_threshold 0 -row-mt 1 -tile-columns 1 -an -tile-rows 0 -threads 16 -cpu-used 3 -pass 2 football_ffmpeg_Zeranoe.mkv
aomenc
D:\AV1_Trials\aomenc.exe football_10.y4m --width=1920 --height=1080 --fps=30000/1000 --passes=2 --lag-in-frames=25 --end-usage=vbr --target-bitrate=2700 --threads=16 --cpu-used=3 --kf-min-dist=60 --kf-max-dist=60 -o football_aomenc.webm
x265
C:\ffmpeg\bin\ffmpeg -y -i Football_10.mp4 -c:v libx265 -threads 16 -preset veryslow -tune ssim -x265-params bitrate=2700:keyint=60:min-keyint=60:scenecut=0:open-gop=0:pass=1 -f mp4 NUL & \
C:\ffmpeg\bin\ffmpeg -y -i Football_10.mp4 -c:v libx265 -threads 16 -preset veryslow -tune ssim -x265-params bitrate=2700:vbv-maxrate=5400:vbv-bufsize=5400:keyint=60:min-keyint=60:scenecut=0:open-gop=0:pass=2 Football_x265_ssim_4.mp4
x264
C:\ffmpeg\bin\ffmpeg -y -i Football_10.mp4 -c:v libx264 -threads 16 -b:v 2700K -preset veryslow -g 60 -keyint_min 60 -sc_threshold 0 -tune ssim -pass 1 -f mp4 NUL & \
C:\ffmpeg\bin\ffmpeg -i Football_10.mp4 -c:v libx264 -threads 16 -b:v 2700K -maxrate 5400K -bufsize 5400k -preset veryslow -g 60 -keyint_min 60 -sc_threshold 0 -tune ssim -pass 2 Football_x264_ssim_4.mp4
The article itself will consider 16 different videos in five genres (animations, games, sports, movies, other) and two additional AV1 codecs, Aurora from Visionular and SVT-AV1 from Intel. It probably will appear in the September time frame.