AVM
37c3317fd058; modified for Encode Wiki · CC BY-SA 4.0AVM (AOM Video Model) is the reference software for next codec from Alliance for Open Media.
AVM, or AOM Video Model is the reference implementation for a future codec from the Alliance for Open Media, the organization behind AV1.
The codebase is under the Clear BSD license and currently only produces av01 bitstreams.
The AVM codec is currently in development and is not yet ready for production use. Not much has been documented or tested.
Rumors
Section titled “Rumors”Some things about the new encoding implementation can be confirmed via the codebase, but none of those changes are final until the codec is standardized and officially released.
Some rumors about the codec include:
- The name of the codec is going to be AV2, superseding AV1
- The codec will be based on AV1, with certain backwards compatibility features available
- Hardware decoding implementations could be implemented at no cost (no royalties) by utilizing GPU shaders and existing AV1 decoding hardware.
- AOM’s strategy will be to release codecs “mid-cycle” relative to ISO/ITU’s release schedule, meaning it is likely that “AV2” will compete with VVC, not ECM.
- A quantizer scale of 0-255 will be standard.
- AVM tries to address some issues with high-fidelity AV1 encoding by introducing a better denoiser to mitigate mosquito noise.
Installation
Section titled “Installation”Arch Linux
Section titled “Arch Linux”AVM is available in the Arch User Repository (AUR) as avm and avm-git.
Compiling
Section titled “Compiling”Since this encoder is under heavy development, there are no pre-built binaries provided, so you will need to compile yourself. Windows users are recommended to compile via MinGW-W64 which comes with MSYS2.
git clone https://gitlab.com/AOMediaCodec/avm.gitcd avm/buildcmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0make -j$(nproc)Since this is a huge project, compiling will take a while depending on your CPU.
The resulting binary will be called aomenc, the same name that encodes content to AV1.
It will be available in the same folder (build), or you can run make install on Linux to install (May need elevated permissions).
Simple Y4M input with QP 65, and ivf output:
aomenc --qp=65 -o output.ivf input.y4mPreset level 6 (higher is faster), QP 65, Y4M input:
aomenc --qp=65 --cpu-used=6 -o output.ivf input.y4mFFmpeg piping:
ffmpeg -v error -i input.mkv -f yuv4mpegpipe -strict -1 - | aomenc --qp=65 --cpu-used=6 -o output.ivf -aomdec
Section titled “aomdec”You will need the aomdec binary you also compiled to be able to play your encoded video, as there are zero video players currently in the whole world that can play your encoded content.