One interesting thing I've discovered in trying to make VP9 make very tiny videos:
If you give it a max bit rate of, say, 1Kbps, it can't do that. It averages something closer to 35Kbps, but looks way worse than if you told it it had 35Kbps to work with (even with 2pass)
If you give it a max bit rate of, say, 12Kbps, somehow you get a much much smaller file that looks about the same as the "1Kbps" file.
Good news: AV1 turbo's it's first pass, so you can do 2 pass encoding at more or less the same speed as 1 pass encoding.
Bad news: I want to see how small AV1 can actually go/what is the best it can look at a low bit rate, so I am running it at it's normal (extra slow) encoding rate.
The file is 3 minutes long. I'm encoding at .05x real time. So we won't see the results for, what, an hour? Something like that.
Also, the finished file here is very slightly smaller than the finished VP9 file, but the majority of that is overhead differences, as the video actually takes up slightly more storage space than the VP9 video.
I gave each of them a target of 12Kbps, which means the video should be 255KB.
The VP9 encode ended up at 274KB for 12.94 Kbps (Close!!)
The AV1 ended up at 323KB for the video, for 15.2Kbps (less close!!) but resulted in an overall smaller file as a result of the lower overhead.
h265 can go smaller than this, by the way.
It can also produce better looking files at this bitrate.
But, in order to use opus audio (which is the best audio codec for any purpose, but especially small file size, IME) you have to mux it as an MKV, which means it won't play back in browser.
Being able to play VP9 and AV1 back in the browser is a significant advantage over H265 + opus MKV, even if those look better.
Here's the same video in h265, with AAC audio and the same encoder settings.
Finished file is 730KB.
video:272kB
audio:383kB
ovehead: 9%
The audio in AAC sounds way worse at 20Kbps than opus does, but the video looks about the same.
But I can do some tricks now with HEVC video that I can't do with AV1.