From 4f4478a21dcf2c3891a7da490c63e377d0a88ca4 Mon Sep 17 00:00:00 2001 From: wukko Date: Tue, 24 Jun 2025 20:24:53 +0600 Subject: [PATCH] api/ffmpeg: fix audio codec args in remux() --- api/src/stream/ffmpeg.js | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/api/src/stream/ffmpeg.js b/api/src/stream/ffmpeg.js index d20525c3..d8e69676 100644 --- a/api/src/stream/ffmpeg.js +++ b/api/src/stream/ffmpeg.js @@ -29,7 +29,7 @@ const convertMetadataToFFmpeg = (metadata) => { args.push('-metadata:s:s:0', `language=${value}`); continue; } - args.push('-metadata', `${name}=${value.replace(/[\u0000-\u0009]/g, "")}`); // skipcq: JS-0004 + args.push('-metadata', `${name}=${value.replace(/[\u0000-\u0009]/g, '')}`); // skipcq: JS-0004 } else { throw `${name} metadata tag is not supported.`; } @@ -116,18 +116,15 @@ const remux = async (streamInfo, res) => { '-map', '0:v', '-map', '1:a', '-c:v', 'copy', - '-c:a', 'copy' ); } else { args.push('-c:v', 'copy'); - - if (streamInfo.type === 'mute') { - args.push('-an'); - } else { - args.push('-c:a', 'copy'); - } } + args.push( + ...(streamInfo.type === 'mute' ? ['-an'] : ['-c:a', 'copy']) + ); + if (format === 'mp4') { args.push('-movflags', 'faststart+frag_keyframe+empty_moov'); } @@ -175,7 +172,7 @@ const convertAudio = async (streamInfo, res) => { args.push( '-f', streamInfo.audioFormat === 'm4a' ? 'ipod' : streamInfo.audioFormat, - 'pipe:3' + 'pipe:3', ); await render( @@ -194,7 +191,7 @@ const convertGif = async (streamInfo, res) => { 'scale=-1:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse', '-loop', '0', - '-f', "gif", 'pipe:3', + '-f', 'gif', 'pipe:3', ]; await render(