🎵 MP3 Compressor

Shrink audio files with adjustable bitrate — no upload, no signup, no watermark

✓ Free Forever · ✓ No Signup · ✓ No Upload · ✓ Works Offline

🔒 Your videos and audio never leave your device. All processing happens locally in your browser using FFmpeg.wasm + LAME MP3 encoder (runs entirely in your browser). No upload, no server, no tracking.

Features

  • Zero Upload — Your audio file never leaves your device. Encoding runs on your CPU via WebAssembly — verifiable in DevTools Network tab.
  • Adjustable Bitrate — Pick anywhere from 64 kbps (small voice files) to 320 kbps (near-lossless music). Preview before downloading.
  • Universal MP3 Output — Output is standard MP3 — playable on every device, phone, car stereo, and DAW. ID3 metadata preserved.
  • No Signup, No Watermark — No account, no audio watermark, no time limit, no email required.

How It Works

  1. Drop your audio file — MP3, WAV, FLAC, M4A, AAC, OGG, OPUS, WEBM, WMA — any common format. Up to 500 MB.
  2. Pick a bitrate — 128 kbps = streaming standard. 64-96 kbps for voice. 192-320 kbps for music you want to keep.
  3. Wait for encoding — FFmpeg.wasm loads once (~30 MB), then encodes on your CPU. Typical 5-minute song takes 10-30 seconds.
  4. Compare and download — Listen to original vs. compressed side-by-side, then download the MP3.

Use Cases

  • Shrink audio under email attachment limits (Gmail 25 MB, Outlook 20 MB)
  • Send voice memos via WhatsApp / Telegram / Discord without quality loss from auto-compression
  • Compress podcast episodes before publishing to your host
  • Save phone storage — recompress old voice recordings before archiving
  • Convert FLAC / WAV music libraries to portable MP3

Frequently Asked Questions

Does my audio file upload to your server?

No. The audio stays in your browser's memory the entire time. The only network request is loading the FFmpeg engine (~30 MB) from a public CDN the first time you use the tool. Open DevTools → Network tab to verify — you'll see the FFmpeg files load, but your audio file never sends bytes anywhere.

Which bitrate should I pick?

128 kbps is the streaming standard — Spotify Free, YouTube Music's default. 64-96 kbps is fine for spoken word (podcasts, voice memos, lectures). 192-256 kbps for music you'll keep long-term. 320 kbps is the MP3 ceiling — useful if the source is lossless and you want minimal degradation.

What's the difference between bitrate and CRF?

Bitrate (kbps) sets the size budget per second of audio. Higher = larger file, better quality. MP3 doesn't use CRF (a video codec concept) — it uses CBR (constant bitrate) or VBR. This tool uses CBR for predictable file sizes.

Why output MP3 and not FLAC, AAC, or Opus?

MP3 is the only audio format that plays on literally every device — old car stereos, smart TVs, voice recorders, DAWs, phones. Newer formats (Opus, AAC) compress better but aren't as universally supported.

Does this preserve metadata (artist, title, album)?

Yes — ID3v2.3 tags are copied from the source file (`-map_metadata 0 -id3v2_version 3`). If your source has cover art and tags, the output will too.

Why is it slower than online services?

Most online compressors run on servers with dedicated CPUs. ToolKoala runs LAME (the MP3 encoder) inside WebAssembly on your laptop's CPU. The trade-off is privacy — but the speed is still reasonable: a 5-minute song typically encodes in 10-30 seconds.

Notes from Milo 🐨

2026-10-09

The bitrate box used to disappear the moment you dropped a file, so when the result told you to "pick a lower bitrate", the only way was to start over and drop it again. Now it stays: pick another bitrate and the same file is compressed again, and the page remembers your choice next time. Under the result it now says what you actually got (say, MP3 · 64 kbps · mono · 8 kHz) — a phone-call recording can't be a 320 kbps MP3, and it used to let you think it was. M4A files no longer leave container junk in the MP3's tags, and AIFF, CAF and AMR recordings get through even when your device doesn't say what they are.

2026-10-03

If you recorded a voice note in your browser, it was saved as a .webm, and this page turned it away with "please choose an audio file". Which it was. It takes .webm and .weba now and gives you back an MP3 of the same length; a screen recording with no sound gets told so instead of a vague "compression failed". Dropping a .webm on the home page offers the MP3 compressor too.

2026-10-03

Two small ones. When a file doesn't say how long it is, the bar used to sit at "0%" until it was suddenly done; now it counts the seconds and how far into the audio it has got. And your download is named after your file (song-compressed.mp3) instead of a pile of identical compressed.mp3s in your Downloads folder.

Related Tools

  • 🎬 Video Compressor — Compress MP4, WebM, MOV — no upload, no signup, no watermark
  • 📦 Compress Image — Reduce file size without losing quality — all in your browser
  • 🔊 Text to Speech — Listen to any text using the voices built into your device — free, no sign-up, works offline with on-device voices

💬 Bug, idea, or just to say hi? Tell Milo 🐨 · [email protected]