From 597b64c9c5123dd37de6a75fa18e8bfd5a2231e2 Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Thu, 18 Jan 2024 23:27:04 -0500 Subject: [PATCH] Made the video_resolution parameter optional --- src/transcoder/transcoder.rs | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/transcoder/transcoder.rs b/src/transcoder/transcoder.rs index 1cbe9b4..aacbef1 100644 --- a/src/transcoder/transcoder.rs +++ b/src/transcoder/transcoder.rs @@ -73,17 +73,28 @@ impl Transcoder { let video_codec = &self.config.get_string("transcoder.video_codec").unwrap(); info!("Transcoding {} to {} with the {} encoder.", ingest_file.display(), output_file.display(), video_codec); - let cmd_output = process::Command::new("/usr/bin/ffmpeg") - .arg("-i") .arg(&*ingest_file.to_string_lossy()) + let binding = process::Command::new("/usr/bin/ffmpeg"); + let mut cmd = binding; + + // start building the command + cmd.arg("-i") .arg(&*ingest_file.to_string_lossy()) .arg("-y") .arg("-f") .arg(&video_format) - .arg("-c:v") .arg(&video_codec) - .arg("-s") .arg(&self.config.get_string("transcoder.video_resolution").unwrap()) - .arg("-r") .arg(format!("{}", self.config.get_string("transcoder.video_framerate").unwrap())) + .arg("-c:v") .arg(&video_codec); + + // add video resolution if it's available + if self.config.get_string("transcoder.video_resolution").is_ok() { + cmd.arg("-s").arg(&self.config.get_string("transcoder.video_resolution").unwrap()); + }; + + // finish out command + cmd.arg("-r").arg(format!("{}", self.config.get_string("transcoder.video_framerate").unwrap())) .arg("-vf") .arg(format!("format={}", &self.config.get_string("transcoder.video_color").unwrap())) .arg("-profile:v").arg(&self.config.get_string("transcoder.video_profile").unwrap()) - .arg("-c:a") .arg(&self.config.get_string("transcoder.audio_codec").unwrap()) - .arg(&*output_file.to_string_lossy()) + .arg("-c:a") .arg(&self.config.get_string("transcoder.audio_codec").unwrap()); + + // finish the command and run it + let cmd_output = cmd.arg(&*output_file.to_string_lossy()) .output() .expect("Failed to execute command");