0

Since I heard librav1e is kind of the fastest AV1 software encoder, I attempted to use it to convert an old MPEG-4 Visual video to AV1, but the result is way slower than the popular SVT-AV1 encoder. When I was using the default preset and a vbr of ~1200kbps of SVT-AV1 I can get an about 110 fps speed for that video, but when I use librav1e it barely exceeds 8fps, even with --speed 10. Manually setting thread count or ramping up tiles does not work either. When I examine closely I see my CPU usage is normally 100% all the time with SVT-AV1, but with rav1e I only get about 30%~40% CPU Utilization.

I have confirmed that rav1e is using AVX2 by piping YUV output to a natively-built rav1e, both on Windows and Linux, so now I am quite puzzled by the situation: why does rav1e failed to pump out the full potential of my machine?

For a bit more context I am using a gaming laptop with 5800H CPU.

1 Answer 1

1

rav1e isn't the fastest AV1 software encoder. Compared to the other encoders, it's barely been developed since 2020 when Mozilla laid off many of their employees, including the Xiph team working on rav1e. No one's probably bothered to rethink the "fastest and safest AV1 encoder" tagline, or maybe they think it's technically correct because rav1e is the only AV1 encoder written in Rust, which is a memory-safe programming language, thus making rav1e the fastest AV1 encoder that is also "safe".

In any case, I think the claim is misleading to most people who come across it.

The actually fastest AV1 software encoder is SVT-AV1, followed by libaom (to the best of my knowledge. I have no idea about proprietary encoders, and FOSS ones seem to be the only ones relevant to your question). rav1e is the slowest and least efficient of the pack. It only supports tile threading, and it's inadvisable to split an old, likely low-resolution MPEG-4 file to enough tiles to saturate a 16-thread CPU. Tiles decrease compression efficiency and ideally you'd avoid them altogether.

I kinda doubt you'll be able to get 100% CPU utilization with any of these encoders, though YMMV as always. I'm only getting ~75% CPU usage at best on a Ryzen 7 3700X (measured with /usr/bin/time -f "%P"), depending on the preset. If you have a bunch of files you need to encode, consider running two or more encoding processes in parallel if you want to max out your CPU.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.