Skip to main content
The coreav command is the coreav-cli crate. Its Cargo features decide which commands a build has and which third-party code it links.

The default build

cargo install --locked --path crates/coreav-cli --profile dist builds the default features, cli and net: A default build has every command except thumbnail and transcode, and links no decoder or encoder. It contains no implementation of a codec that is still under patent, and a CI check enforces that.

Decoder backends

Each backend feature adds coreav thumbnail and coreav transcode, and the decoder it names. None is in a default build. Combine them with commas, for example --features dav1d,ffmpeg-fallback. When a build has more than one backend, CoreAV picks one for each stream from those that support it, and coreav thumbnail reports which one decoded the frame. coreav transcode also needs an encoder program at run time: an x264 program, or an ffmpeg program built with libx264. For example, to build with dav1d and the FFmpeg fallback:

The native H.264 decoder and patents

Decoding H.264 may require a patent licence, depending on where you are and what you do with it. Patents essential to H.264 are still in force in some jurisdictions, and pool licences exist for decoders as well as encoders. Deciding whether you may use this decoder is yours to make. Nothing here is legal advice.
That is why the native H.264 decoder is opt-in behind native-h264 and never in a default build. It decodes High profile, 8-bit 4:2:0, progressive streams, and rejects what it does not decode (field pictures, MBAFF, 4:2:2, 4:4:4 and bit depths above 8, among others) with an error instead of a wrong picture (coreav-h264).

Licence notices

Every distribution of CoreAV ships its licence files, LICENSE-MIT and LICENSE-APACHE. A build with a decoder backend also links the thumbnail code, whose JPEG encoder’s licence asks binary distributions to carry a statement. If you distribute such a build, ship NOTICE beside the binary. If you also ship a copy of libvpx with it, ship libvpx’s own LICENSE and PATENTS files with that copy. A default build needs no NOTICE (notices in distributions).