@mediaproc/audio 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1,11 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from 'commander';
3
- import { register } from './register.js';
3
+ import { explainPreActionHook, showPluginBranding } from '@mediaproc/core';
4
+ import { trimCommand } from './commands/trim.js';
5
+ import { convertCommand } from './commands/convert.js';
6
+ import { mergeCommand } from './commands/merge.js';
7
+ import { normalizeCommand } from './commands/normalize.js';
8
+ import { extractCommand } from './commands/extract.js';
9
+ import { version } from './register.js';
4
10
  const program = new Command();
5
11
  program
6
12
  .name('mediaproc-audio')
7
13
  .description(`
8
- šŸŽµ Audio Processing Plugin v1.0.0
14
+ šŸŽµ Audio Processing Plugin
9
15
 
10
16
  Professional audio processing powered by FFmpeg/FFprobe. Convert, normalize, trim, merge, and extract audio with 5 powerful commands.
11
17
 
@@ -93,8 +99,17 @@ Professional audio processing powered by FFmpeg/FFprobe. Convert, normalize, tri
93
99
  šŸ“š Detailed Help:
94
100
  Use 'mediaproc-audio <command> --help' for comprehensive documentation on each command.
95
101
  `)
96
- .version('1.0.0');
97
- register(program);
102
+ .version(version);
103
+ // Register trim command directly (no "audio" prefix in standalone mode)
104
+ convertCommand(program);
105
+ extractCommand(program);
106
+ mergeCommand(program);
107
+ normalizeCommand(program);
108
+ trimCommand(program);
109
+ program.hook('preAction', explainPreActionHook);
110
+ program.hook('postAction', () => {
111
+ showPluginBranding('Audio');
112
+ });
98
113
  program.parse(process.argv);
99
114
  if (!process.argv.slice(2).length) {
100
115
  program.outputHelp();
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,iBAAiB,CAAC;KACvB,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFZ,CAAC;KACD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,QAAQ,CAAC,OAAO,CAAC,CAAC;AAClB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,iBAAiB,CAAC;KACvB,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwFZ,CAAC;KACD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,wEAAwE;AACxE,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,WAAW,CAAC,OAAO,CAAC,CAAC;AAErB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;AAChD,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;IAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AACH,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAuKtD"}
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA0MtD"}
@@ -1,7 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import { stat } from 'fs/promises';
3
- import { runFFmpeg, getAudioMetadata, checkFFmpeg, formatFileSize, formatDuration, } from '../utils/ffmpeg.js';
4
- import { parseInputPaths, resolveOutputPaths, validatePaths, createStandardHelp, showPluginBranding, AUDIO_EXTENSIONS } from '@mediaproc/core';
3
+ import { runFFmpeg, getAudioMetadata, checkFFmpeg, formatFileSize, formatDuration } from '../utils/ffmpeg.js';
4
+ import { styleFFmpegOutput, shouldDisplayLine } from '../utils/ffmpeg-output.js';
5
+ import { validatePaths, resolveOutputPaths, createStandardHelp, AUDIO_EXTENSIONS } from '@mediaproc/core';
5
6
  import ora from 'ora';
6
7
  export function convertCommand(audioCmd) {
7
8
  audioCmd
@@ -14,8 +15,15 @@ export function convertCommand(audioCmd) {
14
15
  .option('-c, --channels <channels>', 'Number of channels: 1 (mono), 2 (stereo)', parseInt)
15
16
  .option('-q, --quality <quality>', 'Quality preset: low, medium, high, lossless', 'medium')
16
17
  .option('--codec <codec>', 'Audio codec override (libmp3lame, aac, flac, libvorbis, libopus)')
18
+ .option('--normalize', 'Normalize audio levels (EBU R128 loudness normalization)')
19
+ .option('--volume <db>', 'Adjust output volume in dB (e.g., -3 for -3dB)')
20
+ .option('--fade-in <seconds>', 'Add fade-in effect (seconds)', parseFloat)
21
+ .option('--fade-out <seconds>', 'Add fade-out effect (seconds)', parseFloat)
22
+ .option('--trim <start>:<duration>', 'Trim audio: <start>:<duration> (e.g., 00:01:00:30)')
23
+ .option('--metadata <key=value>', 'Set custom metadata (repeatable)', (val, acc = []) => { acc.push(val); return acc; }, [])
24
+ .option('--force', 'Overwrite output files without prompt')
17
25
  .option('--dry-run', 'Preview command without executing')
18
- .option('--explain', 'Explain the proper flow of this command in detail (Coming Soon...)')
26
+ .option('--explain [mode]', 'Show a detailed explanation of what this command will do, including technical and human-readable output. Modes: human, details, json. Adds context like timestamp, user, and platform.')
19
27
  .option('-v, --verbose', 'Show detailed FFmpeg output')
20
28
  .option('-h, --help', 'Display help for convert command')
21
29
  .action(async (input, options) => {
@@ -37,8 +45,15 @@ export function convertCommand(audioCmd) {
37
45
  { flag: '-c, --channels <channels>', description: 'Audio channels: 1 (mono), 2 (stereo)' },
38
46
  { flag: '-q, --quality <quality>', description: 'Quality preset: low (96k), medium (192k), high (320k), lossless' },
39
47
  { flag: '--codec <codec>', description: 'Codec override: libmp3lame, aac, flac, libvorbis, libopus' },
48
+ { flag: '--normalize', description: 'Normalize audio levels (EBU R128 loudness normalization)' },
49
+ { flag: '--volume <db>', description: 'Adjust output volume in dB (e.g., -3 for -3dB)' },
50
+ { flag: '--fade-in <seconds>', description: 'Add fade-in effect (seconds)' },
51
+ { flag: '--fade-out <seconds>', description: 'Add fade-out effect (seconds)' },
52
+ { flag: '--trim <start>:<duration>', description: 'Trim audio: <start>:<duration> (e.g., 00:01:00:30)' },
53
+ { flag: '--metadata <key=value>', description: 'Set custom metadata (repeatable)' },
54
+ { flag: '--force', description: 'Overwrite output files without prompt' },
40
55
  { flag: '--dry-run', description: 'Preview FFmpeg command without executing' },
41
- { flag: '--explain', description: 'Explain what is happening behind the scene in proper flow and in detail (Coming Soon...)' },
56
+ { flag: '--explain [mode]', description: 'Show a detailed explanation of what this command will do, including technical and human-readable output. Modes: human, details, json. Adds context like timestamp, user, and platform.' },
42
57
  { flag: '-v, --verbose', description: 'Show detailed FFmpeg output and progress' }
43
58
  ],
44
59
  examples: [
@@ -59,12 +74,16 @@ export function convertCommand(audioCmd) {
59
74
  console.error(chalk.red('\nāœ— FFmpeg not found. Please install FFmpeg first.'));
60
75
  process.exit(1);
61
76
  }
62
- // Parse and validate input/output paths
63
- const inputPaths = parseInputPaths(input, AUDIO_EXTENSIONS);
64
- const { outputPath } = validatePaths(input, options.output, { allowedExtensions: AUDIO_EXTENSIONS });
65
- const outputPathsMap = resolveOutputPaths(inputPaths, outputPath, {
77
+ // Use pathValidator for all input/output logic
78
+ const { inputFiles, outputPath, errors } = validatePaths(input, options.output, { allowedExtensions: AUDIO_EXTENSIONS });
79
+ if (errors.length > 0) {
80
+ errors.forEach(e => console.error(chalk.red(e)));
81
+ process.exit(1);
82
+ }
83
+ const outputFormat = options.format || 'mp3';
84
+ const outputPathsMap = resolveOutputPaths(inputFiles, outputPath, {
66
85
  suffix: '-converted',
67
- newExtension: `.${options.format}`
86
+ newExtension: `.${outputFormat}`
68
87
  });
69
88
  const outputPaths = Array.from(outputPathsMap.values());
70
89
  // Quality presets
@@ -74,10 +93,10 @@ export function convertCommand(audioCmd) {
74
93
  high: '320k',
75
94
  lossless: 'lossless'
76
95
  };
77
- const targetBitrate = qualityMap[options.quality] || options.bitrate;
96
+ const targetBitrate = (options.quality && qualityMap[options.quality]) || options.bitrate || '192k';
78
97
  // Process each file
79
- for (let i = 0; i < inputPaths.length; i++) {
80
- const inputFile = inputPaths[i];
98
+ for (let i = 0; i < inputFiles.length; i++) {
99
+ const inputFile = inputFiles[i];
81
100
  const outputFile = outputPaths[i];
82
101
  console.log(chalk.blue(`\nšŸ”„ Converting: ${inputFile}`));
83
102
  // Get metadata
@@ -87,49 +106,77 @@ export function convertCommand(audioCmd) {
87
106
  `Sample Rate: ${metadata.sampleRate} Hz • ` +
88
107
  `Channels: ${metadata.channels}`));
89
108
  // Build FFmpeg args
90
- const args = ['-i', inputFile, '-y'];
109
+ const args = ['-i', inputFile];
110
+ if (options.force)
111
+ args.push('-y');
112
+ // Trim
113
+ if (options.trim) {
114
+ const [start, duration] = options.trim.split(':');
115
+ if (start)
116
+ args.push('-ss', start);
117
+ if (duration)
118
+ args.push('-t', duration);
119
+ }
91
120
  // Codec selection
92
121
  const codecMap = {
93
- mp3: 'libmp3lame',
94
- aac: 'aac',
95
- m4a: 'aac',
96
- flac: 'flac',
97
- wav: 'pcm_s16le',
98
- ogg: 'libvorbis',
99
- opus: 'libopus',
122
+ mp3: 'libmp3lame', // MP3 encoder
123
+ aac: 'aac', // Native AAC encoder
124
+ m4a: 'aac', // M4A is a container, usually AAC inside
125
+ flac: 'flac', // FLAC lossless codec
126
+ wav: 'pcm_s16le', // Standard uncompressed WAV PCM
127
+ ogg: 'libvorbis', // OGG is a container, Vorbis is most common
128
+ opus: 'libopus', // Opus codec (often in .opus or .ogg)
129
+ wma: 'wmav2', // Windows Media Audio v2
130
+ ape: 'ape', // Monkey’s Audio (lossless)
131
+ alac: 'alac'
100
132
  };
101
- const codec = options.codec || codecMap[options.format];
102
- if (codec) {
133
+ const codec = options.codec || (options.format && codecMap[options.format]);
134
+ if (codec)
103
135
  args.push('-c:a', codec);
104
- }
105
- // Bitrate
106
- if (targetBitrate !== 'lossless') {
136
+ if (targetBitrate !== 'lossless')
107
137
  args.push('-b:a', targetBitrate);
108
- }
109
- // Sample rate
110
- if (options.sampleRate) {
138
+ if (options.sampleRate)
111
139
  args.push('-ar', options.sampleRate.toString());
112
- }
113
- // Channels
114
- if (options.channels) {
140
+ if (options.channels)
115
141
  args.push('-ac', options.channels.toString());
142
+ // Audio filters
143
+ const filters = [];
144
+ if (options.normalize)
145
+ filters.push('loudnorm=I=-16:TP=-1.5:LRA=11');
146
+ if (options.volume)
147
+ filters.push(`volume=${options.volume}dB`);
148
+ if (options.fadeIn)
149
+ filters.push(`afade=t=in:st=0:d=${options.fadeIn}`);
150
+ if (options.fadeOut && metadata && metadata.duration) {
151
+ const fadeStart = metadata.duration - options.fadeOut;
152
+ filters.push(`afade=t=out:st=${fadeStart}:d=${options.fadeOut}`);
153
+ }
154
+ if (filters.length > 0)
155
+ args.push('-af', filters.join(','));
156
+ // Metadata
157
+ if (options.metadata && Array.isArray(options.metadata)) {
158
+ for (const entry of options.metadata) {
159
+ const [key, value] = entry.split('=');
160
+ if (key && value)
161
+ args.push('-metadata', `${key}=${value}`);
162
+ }
116
163
  }
117
164
  args.push(outputFile);
118
165
  // Dry run
119
166
  if (options.dryRun) {
120
167
  console.log(chalk.yellow('\n[DRY RUN] Would execute:'));
121
168
  console.log(chalk.dim(`ffmpeg ${args.join(' ')}`));
122
- showPluginBranding('Audio', require.resolve('../../package.json'));
123
169
  continue;
124
170
  }
125
- if (options.explain) {
126
- console.log(chalk.gray('Explain mode is not yet available.'));
127
- console.log(chalk.cyan('Planned for v0.8.x.'));
128
- }
171
+ ;
129
172
  // Execute conversion
130
173
  const spinner = ora('Converting...').start();
131
174
  try {
132
- await runFFmpeg(args, options.verbose);
175
+ await runFFmpeg(args, options.verbose ?? false, (line) => {
176
+ if (shouldDisplayLine(line, options.verbose ?? false)) {
177
+ console.log(styleFFmpegOutput(line));
178
+ }
179
+ });
133
180
  const outputStat = await stat(outputFile);
134
181
  spinner.succeed(chalk.green('Conversion complete'));
135
182
  console.log(chalk.green(`āœ“ Output: ${outputFile}`));
@@ -140,10 +187,9 @@ export function convertCommand(audioCmd) {
140
187
  throw error;
141
188
  }
142
189
  }
143
- if (inputPaths.length > 1) {
144
- console.log(chalk.green(`\nāœ“ Converted ${inputPaths.length} files successfully`));
190
+ if (inputFiles.length > 1) {
191
+ console.log(chalk.green(`\nāœ“ Converted ${inputFiles.length} files successfully`));
145
192
  }
146
- showPluginBranding('Audio', require.resolve('../../package.json'));
147
193
  }
148
194
  catch (error) {
149
195
  console.error(chalk.red(`\nāœ— Error: ${error.message}`));
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAazC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAgKtD"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAezC,wBAAgB,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CA0NtD"}
@@ -1,7 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import { stat } from 'fs/promises';
3
3
  import { runFFmpeg, getAudioMetadata, checkFFmpeg, formatFileSize, formatDuration, } from '../utils/ffmpeg.js';
4
- import { AUDIO_EXTENSIONS, parseInputPaths, resolveOutputPaths, validatePaths, createStandardHelp, showPluginBranding } from '@mediaproc/core';
4
+ import { styleFFmpegOutput, shouldDisplayLine } from '../utils/ffmpeg-output.js';
5
+ import { AUDIO_EXTENSIONS, validatePaths, resolveOutputPaths, createStandardHelp } from '@mediaproc/core';
5
6
  import ora from 'ora';
6
7
  export function extractCommand(audioCmd) {
7
8
  audioCmd
@@ -12,10 +13,17 @@ export function extractCommand(audioCmd) {
12
13
  .option('-b, --bitrate <bitrate>', 'Audio bitrate (e.g., 128k, 192k, 320k)', '192k')
13
14
  .option('-q, --quality <quality>', 'Quality preset: low, medium, high, lossless', 'medium')
14
15
  .option('--sample-rate <rate>', 'Sample rate in Hz (e.g., 44100, 48000)', parseInt)
15
- .option('--channels <channels>', 'Number of channels: 1 (mono), 2 (stereo)', parseInt)
16
+ .option('--channels <channels>', 'Number of channels in output. Most formats: 1 (mono), 2 (stereo). For WAV/FLAC/AAC/Opus: 1, 2, 4, 6, 8 (if input supports). MP3/OGG: max 2. If unsupported, will downmix to stereo.', parseInt)
17
+ .option('--normalize', 'Normalize audio levels (EBU R128 loudness normalization)')
18
+ .option('--volume <db>', 'Adjust output volume in dB (e.g., -3 for -3dB)')
19
+ .option('--fade-in <seconds>', 'Add fade-in effect (seconds)', parseFloat)
20
+ .option('--fade-out <seconds>', 'Add fade-out effect (seconds)', parseFloat)
21
+ .option('--trim <start>:<duration>', 'Trim audio: <start>:<duration> (e.g., 00:01:00:30)')
22
+ .option('--metadata <key=value>', 'Set custom metadata (repeatable)', (val, acc = []) => { acc.push(val); return acc; }, [])
23
+ .option('--force', 'Overwrite output files without prompt')
16
24
  .option('--dry-run', 'Preview command without executing')
17
25
  .option('-v, --verbose', 'Show detailed FFmpeg output')
18
- .option('--explain', 'Explain the proper flow of this command in detail (Coming Soon...)')
26
+ .option('--explain [mode]', 'Show a detailed explanation of what this command will do, including technical and human-readable output. Modes: human, details, json. Adds context like timestamp, user, and platform.')
19
27
  .option('-h, --help', 'Display help for extract command')
20
28
  .action(async (input, options) => {
21
29
  if (options.help || !input) {
@@ -34,9 +42,16 @@ export function extractCommand(audioCmd) {
34
42
  { flag: '-b, --bitrate <bitrate>', description: 'Audio bitrate: 128k, 192k, 256k, 320k (default: 192k)' },
35
43
  { flag: '-q, --quality <quality>', description: 'Quality preset: low (96k), medium (192k), high (320k), lossless' },
36
44
  { flag: '--sample-rate <rate>', description: 'Sample rate: 44100 (CD), 48000 (studio), 96000 (Hi-Res)' },
37
- { flag: '--channels <channels>', description: 'Audio channels: 1 (mono), 2 (stereo)' },
45
+ { flag: '--channels <channels>', description: 'Number of channels in output. Most formats: 1 (mono), 2 (stereo). For WAV/FLAC/AAC/Opus: 1, 2, 4, 6, 8 (if input supports). MP3/OGG: max 2. If unsupported, will downmix to stereo.' },
46
+ { flag: '--normalize', description: 'Normalize audio levels (EBU R128 loudness normalization)' },
47
+ { flag: '--volume <db>', description: 'Adjust output volume in dB (e.g., -3 for -3dB)' },
48
+ { flag: '--fade-in <seconds>', description: 'Add fade-in effect (seconds)' },
49
+ { flag: '--fade-out <seconds>', description: 'Add fade-out effect (seconds)' },
50
+ { flag: '--trim <start>:<duration>', description: 'Trim audio: <start>:<duration> (e.g., 00:01:00:30)' },
51
+ { flag: '--metadata <key=value>', description: 'Set custom metadata (repeatable)' },
52
+ { flag: '--force', description: 'Overwrite output files without prompt' },
38
53
  { flag: '--dry-run', description: 'Preview FFmpeg command without executing' },
39
- { flag: '--explain', description: 'Explain what is happening behind the scene in proper flow and in detail (Coming Soon...)' },
54
+ { flag: '--explain [mode]', description: 'Show a detailed explanation of what this command will do, including technical and human-readable output. Modes: human, details, json. Adds context like timestamp, user, and platform.' },
40
55
  { flag: '-v, --verbose', description: 'Show detailed FFmpeg output and progress' }
41
56
  ],
42
57
  examples: [
@@ -55,12 +70,15 @@ export function extractCommand(audioCmd) {
55
70
  console.error(chalk.red('\nāœ— FFmpeg not found. Please install FFmpeg first.'));
56
71
  process.exit(1);
57
72
  }
58
- // Accept video formats
59
- const inputPaths = parseInputPaths(input, AUDIO_EXTENSIONS);
60
- const { outputPath } = validatePaths(input, options.output, { allowedExtensions: AUDIO_EXTENSIONS });
61
- const outputPathsMap = resolveOutputPaths(inputPaths, outputPath, {
73
+ // Use pathValidator for all input/output logic
74
+ const { inputFiles, outputPath, errors } = validatePaths(input, options.output, { allowedExtensions: AUDIO_EXTENSIONS });
75
+ if (errors.length > 0) {
76
+ errors.forEach(e => console.error(chalk.red(e)));
77
+ process.exit(1);
78
+ }
79
+ const outputPathsMap = resolveOutputPaths(inputFiles, outputPath, {
62
80
  suffix: '-audio',
63
- newExtension: `.${options.format}`
81
+ newExtension: `.${options.format || 'mp3'}`
64
82
  });
65
83
  const outputPaths = Array.from(outputPathsMap.values());
66
84
  // Quality presets
@@ -70,65 +88,116 @@ export function extractCommand(audioCmd) {
70
88
  high: '320k',
71
89
  lossless: 'lossless'
72
90
  };
73
- const targetBitrate = qualityMap[options.quality] || options.bitrate;
74
- for (let i = 0; i < inputPaths.length; i++) {
75
- const inputFile = inputPaths[i];
91
+ const targetBitrate = (options.quality && qualityMap[options.quality]) || options.bitrate || '192k';
92
+ for (let i = 0; i < inputFiles.length; i++) {
93
+ const inputFile = inputFiles[i];
76
94
  const outputFile = outputPaths[i];
77
95
  console.log(chalk.blue(`\nšŸŽµ Extracting audio from: ${inputFile}`));
96
+ let metadata = undefined;
78
97
  try {
79
- const metadata = await getAudioMetadata(inputFile);
98
+ metadata = await getAudioMetadata(inputFile);
80
99
  console.log(chalk.dim(`Duration: ${formatDuration(metadata.duration)} • ` +
81
100
  `Codec: ${metadata.codec} • ` +
82
101
  `Sample Rate: ${metadata.sampleRate} Hz`));
102
+ if (metadata.channels && metadata.channels > 2) {
103
+ console.warn(chalk.yellow(`āš ļø Warning: Extracting audio with ${metadata.channels} channels may be slow. Consider downmixing to stereo for faster processing.`));
104
+ }
83
105
  }
84
106
  catch (err) {
85
107
  console.log(chalk.dim('Analyzing video file...'));
86
108
  }
87
109
  // Build FFmpeg args
88
- const args = ['-i', inputFile, '-y', '-vn']; // -vn = no video
89
- // Codec selection
110
+ const args = ['-i', inputFile, '-vn']; // -vn = no video
111
+ if (options.force)
112
+ args.push('-y');
113
+ // Trim
114
+ if (options.trim) {
115
+ const [start, duration] = options.trim.split(':');
116
+ if (start)
117
+ args.push('-ss', start);
118
+ if (duration)
119
+ args.push('-t', duration);
120
+ }
121
+ // Codec selection and channel handling
90
122
  const codecMap = {
91
- mp3: 'libmp3lame',
92
- aac: 'aac',
93
- flac: 'flac',
94
- wav: 'pcm_s16le',
95
- ogg: 'libvorbis',
96
- opus: 'libopus',
123
+ mp3: 'libmp3lame', // MP3 encoder
124
+ aac: 'aac', // Native AAC encoder
125
+ m4a: 'aac', // M4A is a container, usually AAC inside
126
+ flac: 'flac', // FLAC lossless codec
127
+ wav: 'pcm_s16le', // Standard uncompressed WAV PCM
128
+ ogg: 'libvorbis', // OGG is a container, Vorbis is most common
129
+ opus: 'libopus', // Opus codec (often in .opus or .ogg)
130
+ wma: 'wmav2', // Windows Media Audio v2
131
+ ape: 'ape', // Monkey’s Audio (lossless)
132
+ alac: 'alac'
97
133
  };
98
- const codec = codecMap[options.format];
99
- if (codec) {
134
+ const codec = options.format && codecMap[options.format];
135
+ if (codec)
100
136
  args.push('-c:a', codec);
101
- }
102
- // Bitrate (skip for lossless)
103
- if (targetBitrate !== 'lossless') {
137
+ if (targetBitrate !== 'lossless')
104
138
  args.push('-b:a', targetBitrate);
105
- }
106
- // Sample rate
107
- if (options.sampleRate) {
139
+ if (options.sampleRate)
108
140
  args.push('-ar', options.sampleRate.toString());
141
+ // Efficient handling for >2 channels
142
+ let requestedChannels = options.channels;
143
+ if (!requestedChannels && metadata && metadata.channels) {
144
+ requestedChannels = metadata.channels;
109
145
  }
110
- // Channels
111
- if (options.channels) {
112
- args.push('-ac', options.channels.toString());
146
+ if (requestedChannels && requestedChannels > 2) {
147
+ // Only allow >2 channels for codecs that support it well
148
+ const multichannelCodecs = ['flac', 'wav', 'aac', 'opus'];
149
+ if (!options.format || !multichannelCodecs.includes(options.format)) {
150
+ // Warn and downmix to stereo for mp3/ogg
151
+ console.warn(chalk.yellow(`āš ļø Format ${options.format || 'mp3'} does not efficiently support >2 channels. Downmixing to stereo.`));
152
+ args.push('-ac', '2');
153
+ }
154
+ else {
155
+ args.push('-ac', requestedChannels.toString());
156
+ }
157
+ }
158
+ else if (requestedChannels) {
159
+ args.push('-ac', requestedChannels.toString());
160
+ }
161
+ // Audio filters
162
+ const filters = [];
163
+ if (options.normalize)
164
+ filters.push('loudnorm=I=-16:TP=-1.5:LRA=11');
165
+ if (options.volume)
166
+ filters.push(`volume=${options.volume}dB`);
167
+ if (options.fadeIn)
168
+ filters.push(`afade=t=in:st=0:d=${options.fadeIn}`);
169
+ if (options.fadeOut && metadata && metadata.duration) {
170
+ const fadeStart = metadata.duration - options.fadeOut;
171
+ filters.push(`afade=t=out:st=${fadeStart}:d=${options.fadeOut}`);
172
+ }
173
+ if (filters.length > 0)
174
+ args.push('-af', filters.join(','));
175
+ // Metadata
176
+ if (options.metadata && Array.isArray(options.metadata)) {
177
+ for (const entry of options.metadata) {
178
+ const [key, value] = entry.split('=');
179
+ if (key && value)
180
+ args.push('-metadata', `${key}=${value}`);
181
+ }
113
182
  }
114
183
  args.push(outputFile);
115
184
  if (options.dryRun) {
116
185
  console.log(chalk.yellow('\n[DRY RUN] Would execute:'));
117
186
  console.log(chalk.dim(`ffmpeg ${args.join(' ')}`));
118
- showPluginBranding('Audio', '../../package.json');
119
187
  continue;
120
188
  }
121
- if (options.explain) {
122
- console.log(chalk.gray('Explain mode is not yet available.'));
123
- console.log(chalk.cyan('Planned for v0.8.x.'));
124
- }
125
189
  const spinner = ora('Extracting audio...').start();
126
190
  try {
127
- await runFFmpeg(args, options.verbose);
191
+ await runFFmpeg(args, options.verbose ?? false, (line) => {
192
+ if (shouldDisplayLine(line, options.verbose ?? false)) {
193
+ console.log(styleFFmpegOutput(line));
194
+ }
195
+ });
128
196
  const outputStat = await stat(outputFile);
129
197
  spinner.succeed(chalk.green('Extraction complete'));
130
198
  console.log(chalk.green(`āœ“ Output: ${outputFile}`));
131
- console.log(chalk.dim(`Format: ${options.format.toUpperCase()} • ` +
199
+ const fmt = options.format ? options.format.toUpperCase() : 'MP3';
200
+ console.log(chalk.dim(`Format: ${fmt} • ` +
132
201
  `Bitrate: ${targetBitrate} • ` +
133
202
  `Size: ${formatFileSize(outputStat.size)}`));
134
203
  }
@@ -137,10 +206,9 @@ export function extractCommand(audioCmd) {
137
206
  throw error;
138
207
  }
139
208
  }
140
- if (inputPaths.length > 1) {
141
- console.log(chalk.green(`\nāœ“ Extracted audio from ${inputPaths.length} videos successfully`));
209
+ if (inputFiles.length > 1) {
210
+ console.log(chalk.green(`\nāœ“ Extracted audio from ${inputFiles.length} videos successfully`));
142
211
  }
143
- showPluginBranding('Audio', '../../package.json');
144
212
  }
145
213
  catch (error) {
146
214
  console.error(chalk.red(`\nāœ— Error: ${error.message}`));
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/commands/extract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/commands/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAwJpD"}
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/commands/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUzC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAwNpD"}