mediaencode-ffmpeg 0.19.0

The FFmpeg write adapter of the mediaio family. In this release: the encoder-by-name catalogue, with GPL encoders reachable only behind the `gpl` feature and refused by name without it.
docs.rs failed to build mediaencode-ffmpeg-0.19.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

The FFmpeg write adapter of the mediaio family: it implements the mediaencode faces over libavcodec and libavformat. In this release it is the gate every encoder will be opened through: the encoder-by-name catalogue and its GPL rule. The muxer and the encoders themselves arrive in the following releases.

Encoders by name

An encoder is named by its FFmpeg name and passes two gates. The first is the catalogue: the name must be one this crate knows, and a GPL encoder (libx264, libx264rgb, libx265) passes only when the crate is built with its gpl feature — without it the name is refused by name, before libavcodec is asked for anything. The second is the linked libavcodec, which must carry an encoder by that name; one it lacks is refused by name, never replaced by another.

encoder kind license
h264_videotoolbox, hevc_videotoolbox, prores_videotoolbox video, hardware LGPL
prores_ks, libopenh264 video LGPL (libopenh264 is BSD)
libx264, libx264rgb, libx265 video GPL — behind gpl
aac, aac_at audio LGPL

The catalogue is closed on purpose: FFmpeg has no API that states an encoder's license, so a name this crate has not classified cannot be vouched for and is refused. It grows by pull request — an entry is a name, its kind and its license, checked against the encoder's source.

GPL and your binary

Linking an FFmpeg built with --enable-gpl makes your binary GPL, whatever this crate's features say — Homebrew's FFmpeg is such a build. The gpl feature decides only whether this crate will ask for a GPL encoder by name. A build that links an LGPL FFmpeg, or that must not depend on GPL code, leaves the feature off, and every road to a GPL encoder through this crate stays closed.

Features

feature default what it adds
std yes the std tier of the faces and of the FFmpeg base
gpl no opens the GPL encoders by name

License

mediaencode-ffmpeg is under the terms of both the MIT license and the Apache License (Version 2.0); see the section above for what linking a GPL FFmpeg does to a binary.

See LICENSE-APACHE, LICENSE-MIT for details.

Copyright (c) 2026 FinDIT Studio authors.