Convert MP3 to AAC — Free Online Tool

Convert MP3 files to AAC format using FFmpeg's native AAC encoder, transcoding the audio stream from MPEG Layer III to Advanced Audio Coding at 128k bitrate by default. AAC delivers noticeably better perceptual quality than MP3 at equivalent bitrates, making it the preferred format for Apple devices, iTunes, and modern streaming workflows.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

Both MP3 and AAC are lossy compressed audio formats, so this conversion is a transcode — the MP3 audio stream is fully decoded back to uncompressed PCM audio and then re-encoded using FFmpeg's built-in AAC encoder. Because MP3 was already lossy, some quality is lost in decoding, and the re-encoding introduces a second generation of lossy compression. The output AAC file uses the .aac container with raw AAC audio, encoded at 128k bitrate by default. The AAC codec uses more sophisticated psychoacoustic modeling than MP3, so the output often sounds comparable or slightly better at the same bitrate despite the transcoding step.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which handles the full decode-transcode-encode pipeline for this MP3 to AAC conversion entirely in your browser via WebAssembly.
-i input.mp3 Specifies the input MP3 file. FFmpeg reads the MPEG Layer III audio stream and demuxes it in preparation for decoding to raw PCM audio before re-encoding.
-c:a aac Sets the audio codec to FFmpeg's built-in AAC encoder (AAC-LC profile), which re-encodes the decoded PCM audio into Advanced Audio Coding format — the codec standard used natively by Apple devices and modern streaming platforms.
-b:a 128k Sets the target audio bitrate to 128 kilobits per second for the AAC output. At this bitrate, AAC typically delivers perceptually better quality than MP3 at the same rate due to more efficient psychoacoustic compression.
output.aac Defines the output filename with a .aac extension, producing a raw AAC bitstream file. This format is broadly compatible with Apple software, mobile devices, and most modern media players.

Common Use Cases

  • Preparing audio tracks for use in Apple ecosystem apps — GarageBand, iMovie, or Final Cut Pro — which handle AAC natively and more efficiently than MP3
  • Converting a music library to AAC so it syncs correctly with iTunes or Apple Music without requiring additional codec support
  • Optimizing podcast episode files for distribution through Apple Podcasts, which recommends AAC over MP3 for newer submissions
  • Reducing file size for mobile playback on iOS devices where AAC is the hardware-accelerated native format, improving battery performance
  • Converting MP3 audio for embedding in MP4 or M4A video containers used in mobile and web video pipelines, which expect AAC audio streams
  • Standardizing an audio archive to a single modern codec before uploading to a streaming platform that transcodes internally, giving the encoder better source material to work with

Frequently Asked Questions

Not in an absolute sense — since MP3 is already lossy, the original audio information discarded during MP3 encoding cannot be recovered. The transcode decodes the MP3 to raw PCM and then re-encodes to AAC, introducing a second generation of lossy compression. However, AAC's more advanced psychoacoustic model often makes the output sound comparable or marginally cleaner than MP3 at the same bitrate, especially at lower bitrates like 96k or 128k. The best outcome comes from converting at a bitrate equal to or higher than the source MP3's bitrate.
MP3 files store metadata in ID3 tags, while raw .aac files have limited metadata container support compared to the M4A format. FFmpeg will attempt to map compatible metadata fields, but raw AAC containers are not as robust for metadata as M4A (which wraps AAC in an MPEG-4 container). If preserving full metadata like album art, track numbers, and genre tags is important, consider converting to M4A instead of raw AAC, as M4A uses the same AAC audio codec with a more capable metadata container.
Replace the value after -b:a with your desired bitrate. For example, use -b:a 192k for higher quality or -b:a 96k for a smaller file size. For most listening scenarios, 128k AAC is comparable in perceived quality to 160-192k MP3 due to AAC's more efficient compression. If your source MP3 was encoded at 320k, using -b:a 256k or -b:a 320k in the output command will minimize additional quality loss during the transcode.
The command uses FFmpeg's built-in aac encoder, which is available in all standard FFmpeg builds and produces good-quality output. The libfdk_aac encoder is widely considered to produce slightly better audio quality — particularly at lower bitrates — but it requires FFmpeg to be compiled with libfdk_aac support, which is not included in many default builds due to licensing restrictions. For browser-based conversion via FFmpeg.wasm, the native aac encoder is used. If running locally and quality is critical, you can substitute -c:a libfdk_aac if your FFmpeg build supports it.
Yes, with a small modification for your operating system's shell. On Linux or macOS, you can run: for f in *.mp3; do ffmpeg -i "$f" -c:a aac -b:a 128k "${f%.mp3}.aac"; done. On Windows PowerShell, use: Get-ChildItem *.mp3 | ForEach-Object { ffmpeg -i $_.FullName -c:a aac -b:a 128k ($_.BaseName + '.aac') }. This applies the same codec and bitrate settings to every MP3 in the current directory.
AAC is natively supported and hardware-accelerated on all iOS devices, where it is Apple's preferred audio format. On Android, AAC has been a required supported codec since Android 1.0, so compatibility is essentially universal. One practical advantage of AAC on iOS is that hardware decoding reduces CPU and battery usage compared to software-decoded formats. MP3 is also widely supported on both platforms, but AAC is the better choice for Apple-centric workflows and generally more efficient for mobile playback at equivalent quality levels.

Technical Notes

The output of this conversion is a raw AAC bitstream in an .aac file, not wrapped in an MPEG-4 container like M4A. Raw AAC files are supported by most players and platforms but lack the robust metadata and chapter support of the M4A container. FFmpeg's native aac encoder defaults to the AAC-LC (Low Complexity) profile, which is the most universally compatible AAC variant and the standard for music and podcast distribution. Because the source MP3 is already lossy, the transcoding chain is decode-to-PCM then re-encode, meaning the output cannot exceed the fidelity ceiling set by the original MP3 encoding. To minimize generation loss, match or exceed the source bitrate in the -b:a parameter — for example, if the source was a 128k MP3, encoding the AAC output at 128k or higher avoids aggressive additional compression. Joint stereo encoding, which MP3 uses by default, is handled differently in AAC, so the stereo image in the output may be subtly different from the source even at the same bitrate.

Related Tools