MP3 → Opus

MP3 to Opus converter

MP3 audio is decoded and re-encoded with libopus in an Ogg container. Both are lossy, so this is a second-generation encode — but Opus is efficient enough that the file usually shrinks dramatically anyway.

Opus

…or drag files and folders here. Add as many as you like — everything is processed on this device.

.aac .aif .aifc .aiff .flac .m4a .mp3 .oga .ogg .wav .wave

Opus is the current state of the art for lossy audio and it is not close. It beats Vorbis and AAC at nearly every bitrate, handles speech and music with the same encoder, and has very low latency. WhatsApp, Discord, Signal, Zoom and YouTube all use it.

The practical reason to convert MP3 to Opus is storage and bandwidth: a 128 kbps MP3 podcast episode becomes a 48 kbps Opus file of comparable perceived quality, roughly a third of the size. The catch is support — Opus needs a modern player, and older car stereos and hardware will not touch it.

Does this change the audio quality?

A second lossy generation, but Opus’s efficiency means a well-chosen bitrate loses less than the numbers suggest. Encoding from the original lossless source is still better if you have it.

  • Opus always operates at 48 kHz internally. A 44.1 kHz MP3 is resampled, which is reported per file.
  • Support is modern-only: no older car stereos, no legacy iPods, and Safari’s Ogg-Opus support is inconsistent.
  • Opus is not designed for bitrates above about 256 kbps. If you want archival quality, use FLAC instead.

A worked example

Shrinking a podcast back catalogue for a mobile app

  1. Drop the episode MP3s in — hundreds is fine.
  2. Set 48 kbps mono for a talk show, or 96 kbps stereo if there is music and effects.
  3. Turn on LUFS normalisation at −16 to bring the older episodes in line with the newer ones.
  4. Use sequential download mode so each finished file is saved without holding the whole catalogue in memory.

Opus bitrates are lower than you think

24 kbps mono is intelligible speech. 32–48 kbps mono is good speech, the right choice for podcasts and audiobooks. 96 kbps stereo is very good music, comparable to a 160 kbps MP3. 128 kbps stereo is where improvements become hard to hear. Anything above 192 kbps is wasted on Opus — reach for FLAC if you want more.

Supported formats, limits and browser notes

Sonic Batch decodes with the browser when it can (faster, no engine download) and falls back to the self-hosted WebAssembly engine when it cannot. Every combination below works in every listed browser; the column only tells you which decoder does the work.

Input formats accepted by this page
InputWhat it isChromeFirefoxSafariiOS
MP3The universal lossy format. Plays on essentially every device made since 1998.NativeNativeNativeNative
WAVRaw PCM samples with a small header. Perfect fidelity, roughly 10 MB per stereo minute.NativeNativeNativeNative
FLACLossless compression, typically 50–60% of WAV size, bit-identical when decoded.NativeNativeNativeNative
M4AApple’s default AAC container. Better quality than MP3 at the same bitrate.NativeNativeNativeNative
AACBare AAC frames with no MP4 wrapper — used by broadcast streams and some hardware.NativePartialNativeNative
OGGRoyalty-free lossy codec. Standard in game engines, Godot, Unity and Wikimedia.NativeNativeEngineEngine
AIFFApple’s uncompressed PCM format — the WAV equivalent for Logic and Pro Tools.PartialPartialNativeNative
Output formats this page can write
OutputEncoderBitrates / depthSample ratesTags
Opuslibopus16–256 kbps8–48 kHzYes
Max per file
400.0 MB
Max per queue
4.00 GB
Max duration
4:00:00
Max archive
1.50 GB

These are enforced ceilings, checked before any decoding starts, not measured maximums — a file over the limit is rejected rather than allowed to exhaust the tab’s memory. Real-world capacity is lower on older phones, which is why the scheduler runs one file at a time on iOS and Safari.

Where your audio goes

Nowhere. Your file is read from disk into this browser tab with the File API, decoded and encoded by code running in that same tab, and handed back to you as a download. It is never transmitted.

That is a structural property of the application, not a policy promise: there are no API routes, no server actions and no third-party processing services in this project, so there is nothing capable of receiving a file. The page’s Content-Security-Policy also restricts connections to this origin, and the automated test suite includes a browser test that fails if any network request during import, preview, conversion or download carries media bytes.

The trade-off, stated plainly:results live in your tab’s memory until you download them. Closing or reloading the page discards them. There is nothing on a server to recover, because nothing was ever put there.

Read the full privacy detail

Troubleshooting

The output is 48 kHz but my source was 44.1 kHz.

Opus has a single internal rate of 48 kHz. The resample is done properly and is listed in the file’s warnings. There is no way to write a 44.1 kHz Opus stream.

The .opus file will not play on my device.

Opus needs a recent decoder. Check the player’s supported formats; for old hardware, MP3 or AAC is the realistic choice.

Should the file be .opus or .ogg?

Both are Ogg containers holding Opus. Sonic Batch writes .opus, which is the modern convention and helps players pick the right decoder.

Frequently asked questions

Is Opus better than MP3?

Substantially, at every bitrate, and dramatically below 96 kbps. The trade-off is player support rather than quality.

How much smaller will my files get?

For speech, typically 50–70% smaller at comparable quality. For music, 30–50%. The file panel shows the source bitrate so you can judge before converting.

Can I convert Opus back to MP3?

Yes, on the Opus to MP3 page — though each lossy round trip costs quality, so keep an original.

Does the encoder use VBR?

Yes. libopus runs in variable-bitrate mode by default, so the bitrate you set is a target average rather than a hard rate.