![FreezyLemon](/assets/img/avatar_default.png)
* sys: Run cargo fmt * sys: Add new channel layout consts * sys: Update build script for 7.0 - Add new FF_API flags - Update version_check_info range - Add ffmpeg_7_0 feature entry * sys: Update non-exhaustive match statement * Update enums * Mark old APIs as removed with 7.0 * Make Audio frame work with 7.0 The .unwrap() in clone() is a bit wonky * Add API for swr_alloc_set_opts2 * Use AVFrame::duration field in 7.0+ * Include 7.0 in CI runs * Add fn ChanneLayoutIter::best * Update examples for new API * Add/update Context setter for ch layout
This is a fork of the abandoned ffmpeg-next crate which is a fork of the abandoned ffmpeg crate.
Currently supported FFmpeg versions: 4.x, 5.x, 6.x.
Build instructions can be found on the wiki.
Documentation:
See CHANGELOG.md for other information on version upgrades.
If you have significant, demonstrable experience in Rust and multimedia-related programming, please let me know, I'll be more than happy to invite you as a collaborator.
Minimum supported Rust version (MSRV)
Both ffmpeg-the-third
and ffmpeg-sys-the-third
currently require a Rust version of 1.61.0 or higher. Increases in MSRV will result in a semver MINOR version increase.
If you are having issues compiling this crate on your version of Rust, there are two tools you can use to help find MSRV-compatible dependency versions:
- Install a nightly Rust toolchain and run
cargo +nightly update -Zmsrv-policy
. This will automatically resolve dependencies to versions that are compatible with therust-version
inCargo.toml
. - Check the
Cargo.lock.MSRV
in this repository. It contains dependency versions that are known to compile on the MSRV. In the simplest case, you can justcp Cargo.lock.MSRV Cargo.lock
. For more complex dependency graphs, you might need to manually select compatible versions from theCargo.lock.MSRV
.