main
Bel LaPointe 2023-12-27 00:18:34 -05:00
parent 90569967c7
commit ffb2c2bd34
1 changed files with 31 additions and 1 deletions

View File

@ -1,5 +1,24 @@
use std::str::FromStr;
use core::cmp::Ordering;
use std::fs;
pub fn clipify(input: &String) -> Result<Vec<String>, String> {
match inspect(input) {
Ok(inspection) => {
let output_d = format!("{}.d", input);
fs::create_dir_all(&output_d).unwrap();
let ext = input.split(".").last().unwrap();
let mut result = vec![];
for i in 0..inspection.len() {
let output = format!("{}/{}.{}", output_d, i, ext);
let _ = clip(&output, input, inspection[i])?;
result.push(output);
}
Ok(result)
},
Err(msg) => Err(msg),
}
}
pub fn clip(output: &String, input: &String, content_span: ContentSpan) -> Result<(), String> {
match std::process::Command::new("ffmpeg")
@ -11,7 +30,10 @@ pub fn clip(output: &String, input: &String, content_span: ContentSpan) -> Resul
output,
])
.output() {
Ok(_) => Ok(()),
Ok(output) => match output.status.success() {
true => Ok(()),
false => Err(format!("failed to ffmpeg clip {}: {}", input, String::from_utf8(output.stderr).unwrap())),
},
Err(msg) => Err(format!("failed to ffmpeg clip {}: {}", input, msg)),
}
}
@ -201,6 +223,14 @@ mod test_inspection {
use super::*;
const FILE: &str = "/Users/breel/Movies/bel_1_1.mp4";
#[test]
fn test_clipify() {
let result = clipify(&FILE.to_string()).unwrap();
for i in result.iter() {
eprintln!("{}", i);
}
}
#[test]
fn test_screenshot() {
let output = format!("{}.clipped.jpg", FILE);