Normalize audio using NodeJs and FFmpeg
await NormalizeVolume(input_file, output_file[, options])Type: String
Full path to source video file
Type: String
Full path to future normalized video file
Type: Object
Type: Boolean
Default: true
Base on Loudness Normalization
Type: Number
Default: 0.5
Number starts with 0. Volume 0 = muted, 2 = 200%. Ignored if normalize = true
Type: String
Default: ffmpeg
Path to FFmpeg binary file
Type: String
Default: convert
Path to ImageMagick Convert binary file
Type: Object
Default: null
Optional visualization of the normalization result. In short, it is a waveforms before and after normalization, merged together.

To customize waveform, use this options:
| Option | Type | Default | What for? |
|---|---|---|---|
image_before |
String | output_file + '_before.png' |
|
image_after |
String | output_file + '_after.png' |
|
image_comparison |
String | output_file + '_comparison.png' |
|
width |
Number | 400 | |
height |
Number | 225 | |
before_color |
String | white | 'before' waveform color |
after_color |
String | #ff00b3 | 'after' waveform color |
Type: Boolean
Default: true
Enables logging stdout / stderr data
Type: Object
{
"file": "z:\test_normalized.mp4",
"waveform": "z:\test.mp4_comparison.png"
}const NormalizeVolume = require('normalize-volume');
let options = {
normalize: true,
waveform: { width: 1400, height: 225 },
ffmpeg_bin: 'ffmpeg.exe',
convert_bin: 'convert.exe'
}
NormalizeVolume('z:\test.mp4', 'z:\test_normalized.mp4', options)
.then(result => {
console.log(result);
})
.catch(err => {
console.log(err);
})- Now the Promise returns an error object
{ code, []errors }(in case an error occurred).