#avif #av1 #heif #mux #bmff

avif-serialize

Minimal writer for AVIF header structure (MPEG/HEIF/MIAF/ISO-BMFF)

6 releases

0.8.3 Feb 24, 2025
0.8.2 Oct 16, 2024
0.8.1 Dec 6, 2022
0.7.7 Nov 27, 2022
0.6.4 Aug 29, 2020

#592 in Images

Download history 65171/week @ 2024-12-19 53449/week @ 2024-12-26 74981/week @ 2025-01-02 109397/week @ 2025-01-09 94207/week @ 2025-01-16 95611/week @ 2025-01-23 101998/week @ 2025-01-30 110659/week @ 2025-02-06 108003/week @ 2025-02-13 132811/week @ 2025-02-20 129991/week @ 2025-02-27 134378/week @ 2025-03-06 128799/week @ 2025-03-13 128009/week @ 2025-03-20 136186/week @ 2025-03-27 137986/week @ 2025-04-03

554,241 downloads per month
Used in 84 crates (via ravif)

BSD-3-Clause

42KB
975 lines

AVIF image serializer (muxer)

Minimal writer for AVIF header structure. This is lean, safe-Rust alternative to libavif. It creates the jungle of MPEG/HEIF/MIAF/ISO-BMFF "boxes" as appropriate for AVIF files. Supports alpha channel embedding.

Compatible with decoders in Chrome 85+, libavif v0.8.1, and Firefox 92. It's used in cavif and other encoders.

Together with rav1e, it allows pure-Rust AVIF image encoding.

Requirements

Usage

  1. Compress pixels using an AV1 encoder, such as rav1e. libaom works too.

  2. Call avif_serialize::serialize_to_vec(av1_data, None, width, height, 8)

See ravif crate sources for example usage.

Dependencies

~68KB