This is just a random page containing my results from playing around with AV1 settings in FFmpeg.
I am using a short 10 second clip from the Blender open movie: Spring

The initial settings I'm using are:
-c:v libaom-av1 -cpu-used 2 -crf 55 -row-mt 1

I'm then testing tiles, more tiles tend to mean quicker encoding speeds(especially when combined with -row-mt 1), while slightly reducing the compression efficiency.

I've found the maximum amount of tiles you can have is 5x3.

Here are the basic results from FFmpeg:
Please note these are not completely accurate, 10 seconds isn't nearly long enough, I'm using FFmpegs own reporting system which is just a guide and I was using my computer while it was encoding these files, so take these results with a huge shovel of salt!

Ordered by File Size, smallest to largest. 1080p encode.

Tiles Encoding FPS File Size (bytes)
1x1 4.2 47,720
1x2 4.6 50,131
2x1 5.2 50,388
3x1 5.6 50,931
1x3 5.3 51,747
2x2 6 51,890
4x1 6.2 52,542
2x3 7.3 53,652
3x2 6.2 53,790
4x2 7.3 55,690
3x3 7.7 56,367
4x3 7.9 58,835

So with these simple results, you can already see, more tiles means more speed but a larger file size.
As will all things video related, it comes down to either smaller files or quicker speeds, your choice.

Personally the 3x1 tiles look like a nice compromise, much faster than 1x1 but not a huge increase in size.

Some more tests

These are done with a 320p version of the same file, however they are run on a different machine, so don't compare these speeds to the 1080p ones above as they're done with different CPUs.
These tests also include FFmpegs speed info.

The command used for the following are:
-c:v libaom-av1 -cpu-used 2 -crf 45 -row-mt 1

Again, ordered by file size.

Tiles Encoding FPS Encoding Speed File Size (bytes)
1x1 4.4 0.181x 83,258
1x2 4.6 0.183x 85,114
2x1 5.7 0.235x 85,365
3x1 6.5 0.269x 86,083
2x2 5.9 0.245x 87,515
1x3 5.6 0.231x 87,822
4x1 6.7 0.278x 87,975
5x1 7.8 0.325x 88,900
3x2 6.6 0.275x 89,154
2x3 8.0 0.332x 90,442
4x2 7.4 0.306x 90,578
3x3 8.3 0.344x 93,341
5x2 8.2 0.342x 93,802
4x3 7.9 0.33x 94,963
5x3 9.5 0.393x 98,042

I also put all the resulting videos through VMAF - Video Multi-Method Assessment Fusion, just for fun, however the results where so close to each other that I am deciding not to post them.
Just so you're not left without any info, the highest value was 76.399934 (from tiles 1x3) and the lowest was 75.786541 (from tiles 4x2), a difference of 0.613393, which to my very untrained eye, I'm never going to be able to tell any difference what so ever... The number of tiles didn't really corellate to an increase or decrease in perceived quality, it was pretty much random and all within the above numbers.

I've also tested with -row-mt 0, this will make everything slower!

Note: you can't encode with 0 tiles.

Tiles Encoding FPS Encoding Speed File Size (bytes)
1x1 3.1 0.128x 83,484
2x1 4.8 0.201x 85,183
1x2 3.3 0.136x 85,554
3x1 6.2 0.257x 86,707
1x3 5.2 0.216x 87,558
2x2 5.1 0.212x 87,756
4x1 6.4 0.266x 87,914
5x1 7.1 0.294x 88,996
3x2 6.2 0.256x 89,473
2x3 7.5 0.312x 90,708
4x2 6.5 0.27x 90,849
5x2 7.4 0.307x 93,362
3x3 6.8 0.28x 93,411
4x3 6.5 0.269x 95,015
5x3 8.5 0.352x 97,783

The highest VMAF score was 1x1 at 76.629003 and the lowest was 4x2 at 75.937733.

So in conclusion, always use -row-mt 1, it speeds up encoding without reducing quality or increasing the file size too much to be a problem.
Never use 4x2 tiles, it seems to consistently (As in I've done only 2 lots of encoding tests so not accurate at all...) produce the lowest visual quality score while not being very fast or even producing the smallest file size.
For -tiles I'd recommend going for something that speeds up encoding, personally, 3x1 looks nice, almost as good compression as 1x1 yet it's almost twice the encoding speed!

Obviously this was all done using a single test sample of only 10 seconds, so it's very limited in its usefulness.
Due to AV1's slow encoding speeds and my old hardware, testing different types and longer samples becomes a very time consuming job.

So I hope this page may help someone out there, not too sure if it's even helped me but I'm sure it'll be useful somewhere in the future.

I may continue testing other command options...

Add a comment

Next Post Previous Post