packages/docs/docs/webcodecs/resample-audio-16khz.mdx
:::warning We are phasing out Remotion WebCodecs and are moving to Mediabunny! :::
For using Whisper, Whisper.cpp, @remotion/install-whisper-cpp and Whisper.wasm, you need to provide a 16-bit, 16KHz, WAVE audio file.
This page describes approaches for converting your audio in the browser and on the server.
You can use convertMedia() to convert any of the supported video and audio formats and resample it to 16kHz.
import {LicenseDisclaimer} from './LicenseDisclaimer';
<details> <summary>💼 Important `@remotion/webcodecs` License Disclaimer</summary> <LicenseDisclaimer /> </details>import {convertMedia, canReencodeAudioTrack} from '@remotion/webcodecs';
const output = await convertMedia({
src: 'https://example.com/input.mp4',
container: 'wav',
onAudioTrack: async ({track}) => {
if (
await canReencodeAudioTrack({
audioCodec: 'wav',
track,
// Ignore this, bitrate is not used for WAV files
bitrate: 128000,
sampleRate: 16000,
})
) {
return {
type: 'reencode',
audioCodec: 'wav',
bitrate: 128000,
sampleRate: 16000,
};
}
// If this conversion is not supported, return an error
return {
type: 'fail',
};
},
});
const blob = await output.save(); // returns a `Blob`
You can use ffmpeg to convert your audio to a 16-bit, 16KHz, WAVE file.
ffmpeg -i /path/to/audio.mp4 -ar 16000 /path/to/audio.wav -y
If you don't want to install FFmpeg, you can also use the smaller FFmpeg binary provided by Remotion.
npx remotion ffmpeg -i input.mp4 -ar 16000 output.wav -y