Python bindings for libavif (via CFFI)
avif
is available via PyPI, with
wheels built for many common platforms. It can be installed via your
favorite Python package manager, e.g.:
$ pip install avif
Or if you want to use Pillow integration:
$ pip install avif[pillow]
To install this module from source you will need to compile libavif
yourself.
If you want to make use of the decoder you will also need to compile one
(decoders/encoders can be compiled from libavif
).
List of available AV1 decoders:
If you compile avif
without an AV1 decoder you will get
AVIFError: No codec available
raised when you try to get a result,
but you will still be able to import python module.
The installation steps below show how to compile libavif
with the aom
decoder.
Examples can be found under examples directory.
You can use sample.avif
if you don't have any avif encoded image
for testing. Sample is 128x128 pixels in size and it's all white
(RGBA: 255, 255, 255, 255).
To test if library works properly you can run:
$ python examples/avif_example_decode_file.py examples/sample.avif
Correct output:
Parsed AVIF: 128x128 (8bpc)
* First pixel: RGBA(255, 255, 255, 255)
Or to test Pillow plugin:
$ python examples/avif_example_pillow_decode_file.py examples/sample.avif
Correct output:
Parsed AVIF: 128x128 (Mode: RGBA)
* First pixel: RGBA(255, 255, 255, 255)