feat: add smart audio copy and audio mix presets for configurable 5.1 downmixing

This commit is contained in:
Trevor Mears
2026-01-17 13:31:13 -08:00
parent 9919975663
commit c1f8077438
8 changed files with 80 additions and 13 deletions
+1
View File
@@ -128,6 +128,7 @@ function analyzeProbeResult(probeResult, url) {
return {
video: videoCodec,
audio: audioCodec,
audioChannels: audioStream?.channels || 0, // For Smart Audio Copy
container: container,
compatible: compatible,
needsRemux: needsRemux,
+5 -2
View File
@@ -29,7 +29,7 @@ transcodeSession.startCleanupInterval();
* Body: { url: string, seekOffset?: number }
*/
router.post('/session', async (req, res) => {
const { url, seekOffset, videoMode, videoCodec } = req.body;
const { url, seekOffset, videoMode, videoCodec, audioCodec, audioChannels } = req.body;
if (!url) {
return res.status(400).json({ error: 'URL is required' });
@@ -47,8 +47,11 @@ router.post('/session', async (req, res) => {
hwEncoder: settings.hwEncoder || 'software',
maxResolution: settings.maxResolution || '1080p',
quality: settings.quality || 'medium',
audioMixPreset: settings.audioMixPreset || 'auto', // Audio downmix preset
videoMode: videoMode, // 'copy' or 'encode'
videoCodec: videoCodec // 'h264', 'hevc', etc.
videoCodec: videoCodec, // 'h264', 'hevc', etc.
audioCodec: audioCodec, // 'aac', 'ac3', etc.
audioChannels: audioChannels // number of channels (2=stereo)
});
await session.start();