From ef772ad30f4391d1a54cb88136688ae68c1e13c8 Mon Sep 17 00:00:00 2001 From: Craig Drummond Date: Sat, 12 Mar 2022 23:43:05 +0000 Subject: [PATCH] Fix ffmpeg beaking terminal echo --- src/analyse.rs | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/src/analyse.rs b/src/analyse.rs index 34dee8c..37e1dda 100644 --- a/src/analyse.rs +++ b/src/analyse.rs @@ -19,7 +19,7 @@ use std::time::Duration; use std::sync::mpsc; use std::sync::mpsc::{Receiver, Sender}; use std::thread; -use subprocess::{Popen, PopenConfig}; +use subprocess::{Exec, NullFile}; use tempdir::TempDir; use num_cpus; use crate::cue; @@ -199,25 +199,21 @@ pub fn analyze_cue_streaming(tracks: Vec,) -> BlissResult { - match proc.wait() { - Ok(_) => { }, - Err(_) => { } - } - }, - Err(e) => { log::error!("Wait failed for ffmpeg. {}", e); } + match Exec::cmd("ffmpeg").arg("-i").arg(&audio_path).arg("-b:a").arg("128k") + .arg("-ss").arg(&cue_track.start.hhmmss()).arg("-t").arg(&cue_track.duration.hhmmss()) + .arg(String::from(tmp_file.to_string_lossy())) + .stderr(NullFile) + .join() { + Ok(_) => { }, + Err(e) => { log::error!("Failed to call ffmpeg. {}", e); } } } else { - match Popen::create(&["ffmpeg", "-hide_banner", "-loglevel", "panic", "-i", &audio_path, "-b:a", "128k", - "-ss", &cue_track.start.hhmmss(), &tmp_file.to_string_lossy()], PopenConfig::default()) { - Ok(mut proc) => { - match proc.wait() { - Ok(_) => { }, - Err(e) => { log::error!("Wait failed for ffmpeg. {}", e); } - } - }, + match Exec::cmd("ffmpeg").arg("-i").arg(&audio_path).arg("-b:a").arg("128k") + .arg("-ss").arg(&cue_track.start.hhmmss()) + .arg(String::from(tmp_file.to_string_lossy())) + .stderr(NullFile) + .join() { + Ok(_) => { }, Err(e) => { log::error!("Failed to call ffmpeg. {}", e); } } }