AVM
AVM (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â
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â
Arch Linuxâ
AVM is available in the Arch User Repository (AUR) as avm
and avm-git
.
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.
Compilation requires CMake, Nasm, and Perl.
git clone https://gitlab.com/AOMediaCodec/avm.git
cd avm/build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0
make -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).
Usageâ
To convert cq-level
in aomenc and crf
in SVT-AV1 to AVM's QP values, multiply by 4. For example, --cq-level 20
equals to --quantizer 60
.
Simple Y4M input with QP 65, and ivf
output:
aomenc --qp=65 -o output.ivf input.y4m
Preset level 6 (higher is faster), QP 65, Y4M input:
aomenc --qp=65 --cpu-used=6 -o output.ivf input.y4m
FFmpeg piping:
ffmpeg -v error -i input.mkv -f yuv4mpegpipe -strict -1 - | aomenc --qp=65 --cpu-used=6 -o output.ivf -
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.