ff-pipeline
Unified decode-filter-encode pipeline — no unsafe code required.
⚠️ Coming Soon — This crate is a placeholder and not yet implemented. The API is under design. Do not use in production.
Overview
ff-pipeline will provide a high-level Pipeline type that connects ff-decode, ff-filter, and ff-encode into a single, progress-aware transcode pipeline.
Design Principles
All public APIs are safe. Users never need to write unsafe code. Unsafe FFmpeg internals are fully encapsulated within the underlying crates.
Planned Features
- Unified pipeline: Connect decode → filter → encode in a single builder call
- Progress tracking:
on_progresscallback with percent, elapsed, and ETA - Cancellation: Stop a running pipeline via the progress callback
- Multi-input: Concatenate multiple input files
- Parallel thumbnails:
ThumbnailPipelinewith optionalrayonfeature
Planned Usage
use Pipeline;
let pipeline = builder
.input
.output
.on_progress
.build?;
pipeline.run?;
Minimum Supported Rust Version
Rust 1.93.0 or later (edition 2024).
Related Crates
- ff-decode — Video/audio decoding
- ff-filter — Filter graph operations
- ff-encode — Video/audio encoding
- ff-stream — HLS/DASH streaming output
- ff — Facade crate (re-exports all)
License
MIT OR Apache-2.0