spacedrive/crates/ffmpeg
Brendan Allan ed06e3051e
[ENG-84] Sync library (#394)
* new sql lib stuff

* add sync stuff + rename all crates

* build sd-core

* add sync/example/dist to source

* fix sync example in monorepop

* appease clippy

* update lockfile

* update commit hooks

* fix typescript

* fix typescript build

* please rustfmt
2022-10-04 05:25:12 -07:00
..
src Added crates folder (#389) 2022-09-29 21:02:29 -07:00
.gitignore Added crates folder (#389) 2022-09-29 21:02:29 -07:00
Cargo.toml [ENG-84] Sync library (#394) 2022-10-04 05:25:12 -07:00
README.md Added crates folder (#389) 2022-09-29 21:02:29 -07:00

FFMPEG Thumbnailer RS

Rust implementation of a thumbnail generation for video files using ffmpeg. Based on https://github.com/dirkvdb/ffmpegthumbnailer

For now only implements the minimum API for Spacedrive needs. PRs are welcome

Usage


use ffmpegthumbnailer_rs::{to_thumbnail, ThumbnailerError};

#[tokio::main]
async fn main() -> Result<(), ThumbnailerError> {
    to_thumbnail("input.mp4", "output.webp", 256, 100.0).await
}

Or you can use a builder to change the default options


use ffmpegthumbnailer_rs::{ThumbnailerBuilder, ThumbnailerError};

#[tokio::main]
async fn main() -> Result<(), ThumbnailerError> {
    let thumbnailer = ThumbnailerBuilder::new()
        .width_and_height(420, 315)
        .seek_percentage(0.25)?
        .with_film_strip(false)
        .quality(80.0)?
        .build();
    
    thumbnailer.process("input.mp4", "output.webp").await
}