← All tools

Video to MP3

Take the sound out of a video and keep it as MP3, WAV or OGG. Nothing is uploaded β€” the conversion happens on your machine.

What extracting audio actually is

A video file is a container holding separate tracks β€” picture in one, sound in another. They are already independent, so pulling the audio out is not a conversion in the usual sense: the picture is simply left behind.

What happens next depends on the format you choose. WAV takes the decoded audio as it is and writes it uncompressed, which loses nothing and produces a large file. MP3 and OGG re-encode it, which is why the bitrate matters β€” and why converting a file that was already compressed once cannot recover what the first encoder discarded, no matter how high you set it.

Why in the browser

The audio in a video you want to keep is usually the part that is personal: a lecture you recorded, an interview, a rehearsal, something a family member said. Handing that to a website to have it handed back is a strange trade when a laptop can do it in seconds.

This page uses WebCodecs for decoding and, for MP3, a LAME encoder compiled to WebAssembly β€” loaded only if you choose MP3. No file leaves the machine, and there is no size limit because there is nothing to upload to.

To take a section rather than the whole file, trim it first with the trimmer. To convert the video itself between formats, use the converter.

Your file is read and re-encoded by your own browser. No request carries it anywhere β€” this page has no upload endpoint to send it to.

Questions

Is my video uploaded?

No. The browser decodes the file and encodes the audio locally, so nothing is sent anywhere. That matters more here than for most conversions: the reason to pull audio out of a video is often that the video is personal β€” a lecture, an interview, a recording of your own β€” and it has no business on someone else's server to answer a question your laptop can answer.

Which format should I choose?

MP3 if it is going anywhere at all β€” every device and app plays it, and at 192 kbps it is transparent for speech and close to it for music. WAV if the audio is going into an editor or a transcription tool, since it is uncompressed and loses nothing. OGG (Vorbis) is smaller than MP3 at the same quality but less widely supported outside browsers and Android.

What bitrate do I need?

For speech, 96–128 kbps is plenty and halves the file against the default. For music, 192 kbps is the usual sweet spot and 320 is the most MP3 offers. Higher than the source was recorded at gains nothing: converting a 128 kbps podcast to 320 kbps produces a file two and a half times larger that sounds identical.

Why is my WAV file so large?

Because it is uncompressed β€” roughly 10 MB per minute in stereo at 44.1 kHz, regardless of what it contains. That is the point of it: nothing is thrown away. If the size is a problem and the audio is not going into an editor, MP3 is a twentieth of the size and you will not hear the difference.

Can I convert just part of the video?

Not on this page β€” it converts the whole file. Trim the video first with the trimmer, then convert what comes out, or convert everything and cut the audio in whatever you are taking it into.

Which files work?

Anything your browser can open: MP4, MOV and WebM video, and most audio files if you are converting between audio formats. Camera-native formats like ProRes, and DRM-protected files, cannot be read by a browser at all.

The other tools

Build this into your own project

Pulling audio out of a video, locally β€” the same way this page does it, on the user's machine, with no server. Take the code, or hand the prompt to a coding agent.

// npm i mediabunny @mediabunny/mp3-encoder
import { Input, Output, Conversion, BlobSource, BufferTarget, Mp3OutputFormat, ALL_FORMATS } from 'mediabunny';
import { registerMp3Encoder } from '@mediabunny/mp3-encoder';

registerMp3Encoder();   // LAME compiled to WASM; only needed for MP3 output

export async function extractAudio(file, { bitrate = 192_000, mono = false } = {}) {
  const input = new Input({ source: new BlobSource(file), formats: ALL_FORMATS });
  const output = new Output({ format: new Mp3OutputFormat(), target: new BufferTarget() });

  const conversion = await Conversion.init({
    input,
    output,
    video: { discard: true },                      // leave the picture behind
    audio: { bitrate, ...(mono ? { numberOfChannels: 1 } : {}) },
  });

  if (!conversion.isValid) throw new Error('No audio track, or it cannot be decoded');
  await conversion.execute();

  return new Blob([output.target.buffer], { type: 'audio/mpeg' });
}

const mp3 = await extractAudio(file, { bitrate: 192_000 });

The engine is documented for agents, and every tool page is available as markdown by adding .md to its address.