A Rust-based media toolkit, built to be safe and fast.
Documentation · Measurements · Releases
- Safe. Every container parser is safe Rust with limits on memory and work, so a damaged or hostile file gives an error, never a crash. Safety
- Fast. CoreAV reads only the bytes a job needs, from a local file or an
https://URL, and every speed claim is measured against FFmpeg in the open. Measurements - Drop-in.
coreav ffprobeandcoreav ffmpegtake the command lines your scripts already run, and hand any line CoreAV doesn't run natively to the FFmpeg installed on the machine. Commands - Everywhere. Native binaries for Linux, macOS and Windows, and an npm package that runs as WebAssembly wherever else Node.js runs. Platforms
Today you can only build CoreAV from source. Release binaries and the npm package come with 0.1.0.
With Rust 1.89 or later, git, and a C compiler installed:
git clone https://github.com/coreav-dev/coreav
cd coreav
cargo install --locked --path crates/coreav-cli --profile distCargo puts coreav in ~/.cargo/bin. Install covers build features and the planned npm and GitHub Releases packages.
coreav probe input.mp4 # describe the file as JSON
coreav clip --start 10 --end 20 input.mp4 clip.mp4 # cut at keyframes
coreav remux input.mkv output.mp4 # Matroska to MP4, movie header first
coreav ffprobe -v error -show_streams input.mp4 # the ffprobe command line you already useFor files you didn't make, such as uploads, add --strict-safe (coreav --strict-safe ffprobe ...): CoreAV then refuses any command line it doesn't run natively instead of handing it to FFmpeg. Strict-safe mode
CoreAV's documentation is at coreav.dev/docs, and coreav --help lists every command.
CoreAV takes bug reports, feature requests and sample files as issues, not code pull requests. CONTRIBUTING.md says what to send, and the design notes are in docs/design. Report a vulnerability privately, as SECURITY.md describes.
Licensed under either the MIT license or the Apache License 2.0, at your option.