1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//! ffmpeg-light is a small Rust crate that wraps a few common FFmpeg tasks.
//!
//! It focuses on the "80% use cases" like probing media, transcoding, and generating thumbnails,
//! without exposing the full complexity of FFmpeg.
//!
//! ## Quick Start
//!
//! Add to your `Cargo.toml`:
//!
//! ```toml
//! [dependencies]
//! ffmpeg-light = "0.1"
//! ```
//!
//! Note: This crate requires `ffmpeg` and `ffprobe` binaries to be installed and available on PATH.
//!
//! ## Example: Probe a video file
//!
//! ```rust,no_run
//! use ffmpeg_light::probe;
//!
//! let result = probe("input.mp4")?;
//! println!("Duration: {:?}", result.duration());
//! # Ok::<(), ffmpeg_light::Error>(())
//! ```
//!
//! ## Example: Transcode to H.264 MP4
//!
//! ```rust,no_run
//! use ffmpeg_light::transcode::TranscodeBuilder;
//!
//! TranscodeBuilder::new()
//! .input("input.avi")
//! .output("output.mp4")
//! .video_codec("libx264")
//! .run()?;
//! # Ok::<(), ffmpeg_light::Error>(())
//! ```
/// Low-level process helpers for interacting with ffmpeg and ffprobe.
/// Configuration helpers for locating ffmpeg binaries.
/// Shared error type and `Result` alias used by the crate.
/// Small collection of filter helpers used by transcoding.
/// Media probing API built on top of `ffprobe` JSON output.
/// Thumbnail generation helpers.
/// Builder API around common transcoding flows.
/// Shared domain types (timecodes, codecs, stream metadata).
// Re-export main types for convenience
pub use ;
pub use ;
pub use probe;
pub use generate as generate_thumbnail;
pub use TranscodeBuilder;
pub use *;