AV1 Now Only 2X Slower Than x265

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:

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.

About Jan Ozer

Avatar photo
I help companies train new technical hires in streaming media-related positions; I also help companies optimize their codec selections and encoding stacks and evaluate new encoders and codecs. I am a contributing editor to Streaming Media Magazine, writing about codecs and encoding tools. I have written multiple authoritative books on video encoding, including Video Encoding by the Numbers: Eliminate the Guesswork from your Streaming Video (https://amzn.to/3kV6R1j) and Learn to Produce Video with FFmpeg: In Thirty Minutes or Less (https://amzn.to/3ZJih7e). I have multiple courses relating to streaming media production, all available at https://bit.ly/slc_courses. I currently work as www.netint.com as a Senior Director in Marketing.

Check Also

Simplify Your Workflow: Command-Line Variables in FFmpeg Batch Files

Creating batch files with variables is one of the more efficient ways to run FFmpeg. …

Navigating Rate Shaping and Zero Rating: Key Takeaways from Qwilt’s Findings

Many streaming publishers focus on the top rung of their encoding ladders and let the …

JPEG AI Is Coming: What You Need to Know

This article provides an overview of JPEG AI, which delivers superior compression efficiency and improved …

Leave a Reply

Your email address will not be published. Required fields are marked *