ffmpeg-audio-mixer
v1.5.0
Published
A node audio processing library using FFmpeg. It can convert audio files and mix them.
Downloads
28
Maintainers
Readme
Ffmpeg audio mixer
A node audio processing library using FFmpeg. It can convert audio files and mix them.
Install
npm install ffmpeg-audio-mixer
or
yarn add ffmpeg-audio-mixer
Example
Converting an audio file:
import { mixAudio } from 'ffmpeg-audio-mixer';
await mixAudio('my-input.wav').toFile('my-output.mp3');
Mix audio files:
import { mixAudio } from 'ffmpeg-audio-mixer';
await mixAudio([
'input1.mp3',
{
inputFile: 'input2.mp3',
weight: 0.5, // volume of this input is halved
},
{
inputFile: 'input3.mp3',
delay: 4000, // this input is delayed by 4 seconds
},
])
.setVolume(1.4) // Can increase/decrease the volume of the mixed audio
.setFrames(1000) // Limit the number of frames to process
.setCodec('libmp3lame') // Set the output codec
.setSampleFormat('s16') // Set the output sample format
.toBuffer('mp3'); // Can output to a file, stream or buffer.
Documentation
Constructor:
new AudioMixer(inputs: AudioInput | AudioInput[], options?: OutputOptions) -> AudioMixer
// or
mixAudio(inputs: AudioInput | AudioInput[], options?: OutputOptions) -> AudioMixer
Creates an instance of AudioMixer, to which further methods are chained.
- inputs: Inputs to process.
- options: Output options: volume, frames, codec and sampleFormat.
AddInput:
addInput(input: AudioInput) -> AudioMixer
- input: Additional input to process.
setOptions:
setOptions(options: OutputOptions) -> AudioMixer
- options: Output options: volume, frames, codec and sampleFormat.
setFrames
setFrames(frames: number) -> AudioMixer
- frames: Set the number of audio frames to output.
setCodec
setCodec(codec: string) -> AudioMixer
- codec: Set the audio codec.
setSampleFormat
setSampleFormat(sampleFormat: string) -> AudioMixer
- sampleFormat: Set the audio sample format.
setVolume
setVolume(volume: number) -> AudioMixer
- sampleFormat: Set the audio output volume. Default is 1.
toFile
toFile(outputFileName: string) -> Promise<void>
toStream
toStream(fileFormat: string) -> NodeJS.ReadableStream
- fileFormat: Format of the output. Ex: 'mp3', 'wav', ...
toBuffer
toBuffer(fileFormat: string) -> Promise<Buffer>
- fileFormat: Format of the output. Ex: 'mp3', 'wav', ...
Contributing
Contributions, issues and feature requests are welcome!
License
Copyrigth 2022 David Robert-Ansart This project is MIT licensed.