Inspired by the recent news of +AV1 +hardware encoding support from Intel, I decided to look into +the state of AV1 on Linux today. AV1 is a +free +and open standard as defined by Digistan without any royalty +payment requirement, unlike its much used competitor encoding +H.264. While looking, I came across an 5 year +old +question on askubuntu.com which in turn inspired me to check out +how things are in Debian Stable regarding AV1. The test file listed +in the question (askubuntu_test_aom.mp4) did not exist any more, so I +tracked down a different set of test files on +av1.webmfiles.org to test them +with the various video tools I had installed on my machine. I was +happy to discover that AV1 decoding and playback worked with almost +every tool I tested: + +
mediainfo | ok |
dragonplayer | ok |
ffmpeg / ffplay | ok |
gnome-mplayer | fail |
mplayer | ok |
mpv | ok |
parole | ok |
vlc | ok |
firefox | ok |
chromium | ok |
AV1 encoding is available in Debian Stable from the aom-tools +version 1.0.0.errata1-3 package, using the aomenc tool. The encoding +using the package in Debian Stable is quite slow, with the frame rate +for my 10 second test video at around 0.25 fps. My 10 second video +test took 16 minutes and 11 seconds on my test machine.
+ +I tested by first running ffmpeg and then aomenc using the recipe +provided by the askubuntu recipe above. I had to remove the +'--row-mt=1' option, as it was not supported in my 1.0.0 version. The +encoding only used a single thread, according to top.
+ ++ ++ffmpeg -i some-old-video.ogv -t 10 -pix_fmt yuv420p video.y4m +aomenc --fps=24/1 -u 0 --codec=av1 --target-bitrate=1000 \ + --lag-in-frames=25 --auto-alt-ref=1 -t 24 --cpu-used=8 \ + --tile-columns=2 --tile-rows=2 -o output.webm video.y4m +
As version 1.0.0 currently have several +unsolved +security issues in Debian Stable, and to see if the recent +backport provided in +Debian is any quicker, I ran apt -t bullseye-backports install +aom-tools to fetch the backported version and re-encoded the +video using the latest version. This time the '--row-mt=1' option +worked, and the encoding was done in 46 seconds with a frame rate of +around 5.22 fps. This time it seem to be using all my four cores to +encode. Encoding speed is still too low for streaming and real time, +which would require frame rates above 25 fps, but might be good enough +for offline encoding.
+ +I am very happy to see AV1 playback working so well with the +default tools in Debian Stable. I hope the encoding situation improve +too, allowing even a slow old computer like my 10 year old laptop to +be used for encoding.
+ +As usual, if you use Bitcoin and want to show your support of my +activities, please send Bitcoin donations to my address +15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b.
+