ramp-ffmpeg 9.0.2

RAMP Stack's FFmpeg wrapper with Apple static-linking fixes
docs.rs failed to build ramp-ffmpeg-9.0.2
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.

crates.io docs.rs

RAMP Stack's fork of ffmpeg-next, which continues the original ffmpeg crate by meh.. This release preserves the ffmpeg-next 9.0.0 API and uses ramp-ffmpeg-sys for corrected Apple framework linking.

Default features include build-portable, which builds and statically links FFmpeg without an installed FFmpeg library. To select only decoding, formats, and scaling:

[dependencies.ffmpeg-next]
package = "ramp-ffmpeg"
version = "9.0.2"
default-features = false
features = ["build-portable", "codec", "format", "software-scaling"]

The FFmpeg 9.0.2 source is bundled in ramp-ffmpeg-sys, so building does not download FFmpeg or require Git. Building requires a native C compiler and Make; Apple targets use the corresponding Xcode compiler and SDK with pregenerated Rust bindings. The executable does not require FFmpeg shared libraries at runtime. build-portable uses baseline CPU settings instead of tuning the binary for the build machine.

For Intel targets, build-portable also enables bundled-nasm, which builds NASM from bundled source for the build host and preserves FFmpeg's assembly optimizations. ARM targets do not build NASM, and no separate NASM installation is needed.

Enable generate-bindings when adding a target or regenerating bindings; this requires libclang.

FFmpeg retains its own license; the bundled configuration uses FFmpeg's LGPL components unless additional licensing or external codec features are enabled. See FFmpeg licensing.

To use an existing FFmpeg installation, set default-features = false and enable generate-bindings plus the required components. This generates bindings for that installation's ABI rather than using the bundled FFmpeg 9.0.2 bindings. See the upstream build notes.

Documentation:

Note on upgrading to v4.3.4 or later: v4.3.4 introduced automatic FFmpeg version detection, obsoleting feature flags ffmpeg4, ffmpeg41, ffmpeg42 and ffmpeg43. If you manually specify any of these features, now is the time to remove them; if you use ffmpeg43 through the default feature, it's still on for backward-compatibility but it has turned into a no-op, and you don't need to do anything. Deprecation plan: ffmpeg43 will be dropped from default features come 4.4, and all these features will be removed come 5.0.

See CHANGELOG.md for other information on version upgrades.

A word on versioning: major and minor versions of this crate track major and minor versions of FFmpeg, e.g. 4.2.x of this crate has been updated to support the 4.2.x series of FFmpeg. Patch level is reserved for changes to this crate and does not track FFmpeg patch versions. Since we can only freely bump the patch level, versioning of this crate differs from semver: minor versions may behave like semver major versions and introduce backward-incompatible changes; patch versions may behave like semver minor versions and introduce new APIs. Please peg the version you use accordingly.