simple-ffmpeg-edits 0.1.0

Simple ffmpeg wrapper for trimming, cropping, merging videos and photos
Documentation
use std::str::FromStr;
use test_log::test;
use tracing::{debug, error};

use crate::probe::{get_attribute_from_meta, get_metadata};

use super::*;

fn init() -> Encoder {
    // let _ = tracing_subscriber::fmt()
    //     .with_test_writer()
    //     .with_max_level(tracing::Level::DEBUG)
    //     .init();
    //
    // _ = std::fs::remove_file("videod_test.mp4");
    // _ = std::fs::remove_file("encoded_test.mp4");
    Encoder::default()
}

// #[test]
fn reencode() {
    let e = init();
    let p = PathBuf::from_str("test.mp4").unwrap();
    e.reencode(p).unwrap();
}

// #[test]
fn probe() {
    let p = PathBuf::from_str("test.mp4").unwrap();
    let m = get_metadata(&p).unwrap();
    debug!("{:?}", m);
    assert_eq!(16, m.aspect_ratio.as_ref().unwrap().0);
    assert_eq!(9, m.aspect_ratio.as_ref().unwrap().1);

    let a = get_attribute_from_meta("duration", &p);
    debug!("{:?}", a);
}

// #[test]
fn picture_to_video() {
    let e = init();
    let imag = PathBuf::from_str("test.jpg").unwrap();
    let video_4_aspectratio = PathBuf::from_str("test.mp4").unwrap();
    let m = get_metadata(&video_4_aspectratio).unwrap();
    match e.picture_to_video(imag, Some(5), m.resolution) {
        Ok(p2) => debug!("{:?}", p2),
        Err(e) => {
            error!("{:?}, {}", e, e.to_string());
            assert!(false)
        }
    };
}

#[test]
fn trim_video() {
    let e = init();
    let p = PathBuf::from_str("test2.mp4").unwrap();
    let m = get_metadata(&p).unwrap();
    e.trim_video(p, Some(5000), Some(20000), m.duration)
        .unwrap();
}