Expand description
Safe and idiomatic Rust wrapper for FFmpeg
This crate provides a high-level, safe interface to FFmpeg functionality, allowing you to transcode, filter, and manipulate multimedia files.
§Examples
§Simple conversion
use ffmpeg_rs::FFmpegBuilder;
// Convert a video file
let output = FFmpegBuilder::convert("input.mp4", "output.webm")
.run()
.await?;
§Complex transcoding
use ffmpeg_rs::{FFmpegBuilder, Input, Output};
use ffmpeg_rs::codec::presets;
use ffmpeg_rs::filter::VideoFilter;
use ffmpeg_common::{Codec, Duration};
let output = FFmpegBuilder::new()?
.input(
Input::new("input.mp4")
.seek(Duration::from_secs(10))
.duration(Duration::from_secs(30))
)
.output(
Output::new("output.mp4")
.video_codec_opts(presets::h264::youtube_1080p())
.audio_codec(Codec::aac())
.metadata("title", "My Video")
.faststart()
)
.video_filter(VideoFilter::scale(1920, 1080))
.overwrite()
.on_progress(|p| {
println!("Progress: {:?}", p);
})
.run()
.await?;
Re-exports§
pub use builder::FFmpegBuilder;
pub use builder::FFmpegProcess;
pub use codec::CodecOptions;
pub use filter::AudioFilter;
pub use filter::FilterGraph;
pub use filter::VideoFilter;
pub use format::FormatOptions;
pub use input::ConcatInput;
pub use input::DeviceInput;
pub use input::Input;
pub use input::StreamInput;
pub use output::ImageSequenceOutput;
pub use output::MultiOutput;
pub use output::Output;
pub use stream::StreamDisposition;
pub use stream::StreamMap;
pub use stream::StreamMetadata;
pub use stream::StreamSelection;
Modules§
Structs§
- Capabilities
- Capabilities detection for FFmpeg tools
- Codec
- Codec name
- Duration
- Represents a duration in FFmpeg format (HH:MM:SS.MS or seconds)
- Media
Path - Input or output file/URL
- Pixel
Format - Pixel format
- Progress
- Progress information from FFmpeg
- Sample
Format - Audio sample format
- Size
- Represents a size in bytes with SI/binary prefixes support
- Version
- Version information for the FFmpeg suite
Enums§
- Error
- Main error type for FFmpeg suite operations
- LogLevel
- Log level for FFmpeg tools
- Stream
Specifier - Represents a stream specifier in FFmpeg
- Stream
Type - Stream type
Functions§
- capabilities
- Get FFmpeg capabilities
- get_
version - Get version information for an FFmpeg executable
- is_
available - Check if FFmpeg is available
- version
- Get FFmpeg version
Type Aliases§
- Result
- Result type for FFmpeg suite operations