Fix muxing

This commit is contained in:
2026-05-15 04:10:06 +02:00
parent 05faf1ce3b
commit 6deb883472
26 changed files with 662 additions and 169 deletions

View File

@@ -6,7 +6,7 @@ import {
} from '../db/jobStore';
import { generateAudioDescriptionFromOptions } from '../../utils/processor';
import { generateSRT, generateVTT } from './subtitleGenerator';
import { muxAudioDescription } from './muxer';
import { muxAudioDescription, muxMixedAudioDescription } from './muxer';
import { getDefaultConfig, Config } from '../../config/config';
import { AudioSegment, BatchContext } from '../../interfaces';
import { getVideoDuration, cleanupTempFiles } from '../../utils/mediaUtils';
@@ -79,7 +79,8 @@ export class JobManager {
const opts: OutputOptions = {
audio: outputOptions.audio !== false,
subtitles: outputOptions.subtitles !== false,
muxed: outputOptions.muxed || false
muxed: outputOptions.muxed || false,
muxMode: outputOptions.muxMode === 'mixed' ? 'mixed' : 'separate'
};
return createJob(videoPath, filename, mergedConfig, opts);
@@ -307,8 +308,16 @@ export class JobManager {
}
if (outputOptions.muxed && fs.existsSync(outputAudio)) {
const muxedPath = path.join(outputDir, `${baseName}_described.mkv`);
muxAudioDescription(job.video_path, outputAudio, muxedPath);
const isMixed = outputOptions.muxMode === 'mixed';
const muxedPath = path.join(
outputDir,
`${baseName}${isMixed ? '_described_mixed' : '_described'}.mkv`
);
if (isMixed) {
muxMixedAudioDescription(job.video_path, outputAudio, muxedPath);
} else {
muxAudioDescription(job.video_path, outputAudio, muxedPath);
}
outputMuxed = muxedPath;
}