async clipify
This commit is contained in:
@@ -67,6 +67,25 @@ pub fn clip(output: &String, input: &String, content_span: ContentSpan) -> Resul
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn clip_async(output: &String, input: &String, content_span: ContentSpan) -> Result<(), String> {
|
||||
fs::create_dir_all(Path::new(output).parent().unwrap()).unwrap();
|
||||
match async_process::Command::new("ffmpeg")
|
||||
.args([
|
||||
"-y",
|
||||
"-ss", &content_span.start.to_string(),
|
||||
"-i", input,
|
||||
"-t", &(content_span.stop - content_span.start).to_string(),
|
||||
output,
|
||||
])
|
||||
.output().await {
|
||||
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)),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn screenshot(output: &String, input: &String, ts: f32) -> Result<(), String> {
|
||||
match screenshot_png(input, ts) {
|
||||
Ok(png) => {
|
||||
|
||||
Reference in New Issue
Block a user