diff --git a/src/ffmpeg.rs b/src/ffmpeg.rs index 2ec0192..0c3e036 100644 --- a/src/ffmpeg.rs +++ b/src/ffmpeg.rs @@ -105,11 +105,19 @@ pub async fn convert_video( Codec::VP9 => &["-c:v", "libvpx-vp9", "-row-mt", "1"], }; + // TODO: maybe check if the video has 2 audio tracks? or at least use a "fail-safe" method + let merge_args: &[&str] = if merge_tracks { + &["-ac", "2", "-filter_complex", "amerge=inputs=2"] + } else { + &[] + }; + let mut child = Command::new("ffmpeg") .arg("-i") .arg(path) .args(["-c:a", "libopus", "-b:a", "96k"]) .args(codec_args) + .args(merge_args) .args(["-loglevel", "error", "-progress", "-", "-nostats"]) .arg(&out_path) .stdout(Stdio::piped())