Audio Converter
Convert audio between MP3, WAV, AAC/M4A, OGG, FLAC and Opus. Control bitrate, sample rate, channels, and loudness normalization, all on a real FFmpeg engine running fully inside your browser.
Click or drop any audio file
A universal audio converter running the real FFmpeg engine in your browser
This tool converts between MP3, WAV, AAC, OGG Vorbis, FLAC and Opus using ffmpeg.wasm, a WebAssembly build of FFmpeg. That matters because it means the tool is not limited to a handful of formats it was specifically coded to handle. It inherits whatever container and codec support the underlying FFmpeg build ships with, so obscure input containers generally still work. Conversion happens entirely inside your browser tab. There is no upload step anywhere in the code, only a one time fetch of the encoder engine itself from a CDN.
What happens when you click Convert
fetchFile(), never touching a network request.
The -vn flag tells FFmpeg to strip any video stream, relevant when converting audio pulled from a video container. Sample rate and channel count are left untouched unless you explicitly override them, which is why the output defaults to matching your source file’s characteristics.
Codec map and lossy versus lossless
| Format | FFmpeg codec | Container / type |
|---|---|---|
| MP3 | libmp3lame | Lossy, MPEG-1/2 Layer III |
| WAV | pcm_s16le | Lossless, RIFF/WAVE PCM |
| AAC | aac | Lossy, MPEG-4 (.m4a) |
| OGG | libvorbis | Lossy, Ogg container |
| FLAC | flac | Lossless, compressed |
| Opus | libopus | Lossy, RFC 6716 |
The bitrate field only appears for the four lossy formats. WAV and FLAC skip it entirely because a lossless codec does not take a target bitrate the way a lossy one does; FLAC instead compresses losslessly around whatever the source data allows.
classWorkerURL, rather than letting ffmpeg.wasm build a Worker directly from the unpkg.com URL. A worker constructed straight from a different-origin script throws a security error in the browser. That same code path also forces the tool to load the ESM build of the FFmpeg core rather than the UMD build, since a module Worker has no importScripts() to load a classic script with.
Options exposed beyond format
Sample rate
Passed as FFmpeg’s -ar flag. Left blank, the source rate is preserved. Common choices like 44100 or 48000 Hz force a resample.
Channels
Mono forces -ac 1, downmixing stereo content. Stereo forces -ac 2. Leaving it unset keeps the source layout.
Loudness normalization
Applies the EBU R128 loudnorm filter at minus 16 LUFS before encoding, evening out volume differences across tracks.
Bitrate for lossy formats
A free text field passed straight to -b:a, defaulting to 192k if left empty.
Audio format documentation
- FFmpeg formats documentation lists every container and codec the underlying engine can read and write.
- Vorbis I specification defines the OGG output codec.
- FLAC format description from Xiph.org covers the lossless format used for the FLAC option.
- RFC 6716 defines the Opus codec.
- ffmpeg.wasm project docs explain the WebAssembly runtime this converter is built on.
Format jobs this covers
Converting voice recordings from a phone’s default AAC container into WAV for editing in a DAW, turning FLAC rips into MP3 for a device with limited storage, preparing Opus files for web embedding where file size matters, or standardizing a folder of mixed audio formats before archiving. Because everything runs client side through a real encoder, the output quality matches what a desktop FFmpeg install would produce.
FAQ: Audio Converter
Output can be MP3, WAV, AAC/M4A, OGG Vorbis, FLAC or Opus. Input can be virtually any audio format FFmpeg supports, which covers essentially every common audio file you will encounter, including less common ones like WMA or AIFF.
192 kbps is a strong general purpose default that is hard to distinguish from the source on most listening setups. Use 320 kbps for archival or audiophile use, or drop to 96 to 128 kbps for spoken word content and podcasts where file size matters more than fidelity.
It runs FFmpeg’s loudnorm filter to bring your file to a consistent integrated loudness of negative 16 LUFS, the EBU R128 target most podcast hosts and streaming platforms expect. This is useful when combining clips recorded at different volumes or preparing audio for a platform with strict loudness requirements.
No, converting an MP3 to OGG for example cannot recover data the original MP3 encoding already discarded. Reencoding a lossy file into another lossy format at the same or higher bitrate just avoids adding further loss, it never restores lost detail.
No. Conversion runs on ffmpeg.wasm, a real FFmpeg build compiled to WebAssembly that executes entirely inside your browser. Your file never leaves your device.
From the blog
Format guides and gotchas
What each format stores, and what quietly disappears in conversion.