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.
Overview
ez-ffmpeg provides a simple, safe, and ergonomic interface for integrating FFmpeg into Rust projects. Designed to closely mirror FFmpeg's original logic and parameter structures, this library offers:
- Complete safety without unsafe interfaces
- Preservation of FFmpeg's core parameter and processing logic
- Intuitive API for media processing
- Supports custom Rust filters
- Custom Inputs/Outputs
- Optional RTMP and OpenGL support
The library abstracts away the complexity of the raw C API while maintaining the fundamental approach of FFmpeg, allowing developers to configure media pipelines, run transcoding or filtering jobs, and inspect streams with minimal overhead.
Version Requirements
- Rust: Version 1.80.0 or higher.
- FFmpeg: Version 7.0 or higher. (Other FFmpeg versions have not been thoroughly tested and are not recommended.)
Documentation
More information about this crate can be found in the crate documentation.
Quick Start
Installation Prerequisites
macOS
Windows
# For dynamic linking
# For static linking (requires 'static' feature)
# Set VCPKG_ROOT environment variable
Adding the Dependency
Add ez-ffmpeg to your project by including it in your Cargo.toml:
[]
= "*"
Basic Usage
Below is a basic example to get you started. Create or update your main.rs with the following code:
use FfmpegContext;
use FfmpegScheduler;
More examples can be found here.
Features
ez-ffmpeg offers several optional features that can be enabled in your Cargo.toml as needed:
- opengl: Enables GPU-accelerated OpenGL filters for high-performance video processing.
- rtmp: Includes an embedded RTMP server for local streaming scenarios.
- flv: Provides support for FLV container parsing and handling.
- async: Adds asynchronous functionality (allowing you to
.awaitoperations). - static: Enables static linking for FFmpeg libraries (via
ffmpeg-next/static).
License
ez-ffmpeg is distributed under the WTFPL (Do What The F*ck You Want To Public License). Important: While ez-ffmpeg is freely usable, FFmpeg has its own licensing terms. Ensure your usage complies with FFmpeg's license when using its components.