ffmpeg-audio-mixer
TypeScript icon, indicating that this package has built-in type declarations

1.4.0 • Public • Published

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.

Package Sidebar

Install

npm i ffmpeg-audio-mixer

Weekly Downloads

7

Version

1.4.0

License

MIT

Unpacked Size

16.4 kB

Total Files

6

Last publish

Collaborators

  • david_robertansart