From f7d97f1f2fda9387f7b71d788a4886b50aed8bdc Mon Sep 17 00:00:00 2001 From: uku Date: Sun, 18 May 2025 23:03:52 +0200 Subject: [PATCH] feat: add ability to merge audio tracks --- src/ffmpeg.rs | 8 ++++++++ 1 file changed, 8 insertions(+) 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())