ff-preview
Real-time video preview and proxy workflow for Rust. Provides frame-accurate seek, audio-master A/V sync, a FrameSink trait for custom renderers, RGBA pixel delivery, and proxy generation with transparent auto-substitution.
Project status (as of 2026-04-13): This crate is in an early phase. The high-level API is designed and reviewed by hand; AI is used as an accelerator to implement FFmpeg bindings efficiently. Code contributions are not expected at this time — questions, bug reports, and feature requests are welcome. See the main repository for full context.
Installation
[]
= "0.13"
# Enable async support
= { = "0.13", = ["tokio"] }
# Enable proxy generation
= { = "0.13", = ["proxy"] }
Quick Start
Playback with a custom RGBA sink
use ;
Frame-accurate seek
use Duration;
use ;
let mut buf = open.build?;
buf.seek?;
loop
Proxy generation
use ;
let proxy_path = new?
.resolution
.output_dir
.generate?;
println!;
Feature Flags
| Feature | What it enables |
|---|---|
| (default) | PreviewPlayer, DecodeBuffer, PlaybackClock, FrameSink, RgbaSink, RgbaFrame, seek |
tokio |
AsyncPreviewPlayer |
proxy |
ProxyGenerator, ProxyJob, ProxyResolution |
MSRV
Rust 1.93.0 (edition 2024).
License
MIT OR Apache-2.0