Files
NodecastV2/server/services/remuxAudio.js
Technomancer702 788d43a4cb Apply AAC remux filters only to matching audio tracks
Adapted from MikaelKW/nodecast-tv-plus commit 25f7cb636a07a3efb2c409ff182920ae0fbe01bd.

Co-authored-by: Mikael <mikaelkwessel@gmail.com>
2026-10-12 16:11:34 -07:00

18 lines
743 B
JavaScript

// Preserve audio stream order: -map 0:a maps every input audio track.
function parseAudioCodecs(value) {
if (value === undefined || value === '') return [];
if (typeof value !== 'string') throw new Error('audioCodecs must be a comma-separated string');
const codecs = value.split(',').map(codec => codec.trim().toLowerCase());
if (codecs.length > 16 || codecs.some(codec => !/^[a-z0-9][a-z0-9_.-]{0,31}$/.test(codec))) {
throw new Error('audioCodecs contains invalid codec names');
}
return codecs;
}
function audioFilterArgs(codecs) {
return codecs.flatMap((codec, index) => codec === 'aac'
? [`-bsf:a:${index}`, 'aac_adtstoasc'] : []);
}
module.exports = { parseAudioCodecs, audioFilterArgs };