Convert MP3 to M4A — Free Online Tool
Convert MP3 files to M4A by re-encoding the audio from MPEG Layer III to AAC, Apple's preferred audio codec. The resulting M4A file offers better audio efficiency at equivalent bitrates and is natively supported by iTunes, Apple Music, iOS, and macOS.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MP3 file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
Unlike container-swap conversions that simply remux streams without re-encoding, MP3-to-M4A requires full audio transcoding: the MP3 bitstream (encoded with the MPEG Layer III codec) is decoded to raw PCM audio, then re-encoded using AAC (Advanced Audio Coding) and wrapped in an MPEG-4 container with the .m4a extension. Because both MP3 and AAC are lossy codecs, this is a generation loss scenario — you are decoding one lossy format and re-encoding into another. The output quality is bounded by the quality of the source MP3, so using a high bitrate (128k or above) for the AAC output minimizes the perceptible degradation. ID3 tags from the source MP3 are not automatically carried over to M4A's iTunes-style metadata atoms, so tag data may need to be re-applied after conversion.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles the decoding of the source MP3 audio, the AAC re-encoding, and the writing of the MPEG-4 M4A output container. |
-i input.mp3
|
Specifies the source MP3 file as input. FFmpeg reads and decodes the MPEG Layer III audio stream from this file into raw PCM audio for re-encoding. |
-c:a aac
|
Sets the audio codec for the output to AAC using FFmpeg's built-in AAC encoder. This is necessary because M4A does not support the MP3 codec, so the audio must be fully transcoded from libmp3lame (MP3) to AAC. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second. At this bitrate, AAC delivers audio quality broadly comparable to a 160k MP3, making it a reasonable default for music and voice content converted from typical MP3 sources. |
-vn
|
Disables video stream output, preventing FFmpeg from including any embedded album art (which MP3 stores as an attached picture video stream) in the M4A file. This ensures the output is a clean audio-only M4A as expected by iTunes and Apple Music. |
output.m4a
|
Defines the output filename and signals to FFmpeg that the container format is MPEG-4 audio (.m4a). The .m4a extension ensures the file is recognized as audio-only by Apple software and other compatible players, distinct from .mp4 which implies video. |
Common Use Cases
- Importing music into an Apple ecosystem workflow — iTunes, Apple Music, or GarageBand — where M4A/AAC is the native preferred format over MP3
- Preparing podcast audio for distribution through Apple Podcasts, which recommends AAC-encoded M4A or MP4 audio files
- Converting a music library of MP3s to M4A so that older iPods and iOS devices benefit from AAC's better quality-per-bit ratio at lower bitrates like 96k or 128k
- Uploading audio to Final Cut Pro or iMovie projects, which handle M4A/AAC more natively than MP3 in Apple's editing pipeline
- Re-encoding MP3 voice recordings or audiobooks to M4A to take advantage of MPEG-4's chapter support, enabling chapter markers in compatible podcast players
- Standardizing a mixed audio library to a single format before importing into Logic Pro X, which treats M4A as a first-class format
Frequently Asked Questions
Yes, there will be some quality loss because this conversion decodes a lossy MP3 and re-encodes it into lossy AAC — a process sometimes called 'generation loss.' However, AAC is a more efficient codec than MP3, so a 128k AAC file in M4A generally sounds comparable to or slightly better than a 128k MP3. To minimize degradation, avoid downsampling below the bitrate of your source MP3, and if your source is 320k MP3, outputting at 192k or 256k AAC is a reasonable tradeoff.
The M4A container is an MPEG-4 audio file and does not support the MP3 codec as a primary audio stream in standard implementations. M4A is designed to carry AAC audio, which is the successor to MP3 defined in the same MPEG-4 standard. This is why transcoding is necessary rather than a simple container remux — the codec itself must change from libmp3lame (MP3) to AAC.
Not reliably. MP3 files use ID3 tags, while M4A files use iTunes-style metadata atoms (also called MP4 metadata). FFmpeg attempts a basic mapping between the two tag systems, so common fields like title, artist, and album often do carry over. However, non-standard or custom ID3 tags may be lost, and the tag format will be converted to the MP4 atom structure. You should verify tags in iTunes or a tag editor like MP3Tag after conversion.
Modify the value after the -b:a flag to set a different AAC bitrate. For example, replace '128k' with '192k' for higher quality: ffmpeg -i input.mp3 -c:a aac -b:a 192k -vn output.m4a. For voice content like podcasts, 96k AAC is often indistinguishable from higher bitrates. For music from a high-quality source MP3, 192k or 256k is recommended to preserve fidelity through the transcoding step.
Yes. On Linux or macOS, you can use a shell loop: for f in *.mp3; do ffmpeg -i "$f" -c:a aac -b:a 128k -vn "${f%.mp3}.m4a"; done. On Windows Command Prompt, use: for %f in (*.mp3) do ffmpeg -i "%f" -c:a aac -b:a 128k -vn "%~nf.m4a". This applies the same AAC encoding settings to every MP3 in the current directory and outputs a matching .m4a file for each.
The -vn flag tells FFmpeg to exclude any video streams from the output. MP3 files occasionally embed album art as a video stream (specifically an attached picture), and without -vn, FFmpeg might attempt to include that image stream in the M4A output, which can cause muxing errors or unexpected behavior in the MPEG-4 container. Using -vn ensures the output M4A contains only the AAC audio stream, which is the correct structure for a pure audio M4A file.
Technical Notes
The conversion from MP3 to M4A involves two fundamentally different audio codecs: MP3 uses the MPEG-1 Audio Layer III algorithm (libmp3lame in FFmpeg), while M4A uses AAC (Advanced Audio Coding, implemented as 'aac' or 'libfdk_aac' in FFmpeg). AAC was designed as MP3's successor and achieves equivalent perceived quality at roughly 20-30% lower bitrates, meaning 128k AAC generally matches 160k MP3 in perceived fidelity. However, since both formats are lossy, each encode-decode cycle introduces additional artifacts; the final quality ceiling is set by the source MP3, not the output bitrate. FFmpeg's built-in 'aac' encoder (used here) is a solid general-purpose encoder; the third-party 'libfdk_aac' encoder is considered slightly higher quality but requires a separately compiled FFmpeg build. The M4A container supports chapters (an advantage over MP3), but chapter data cannot be derived from the source MP3 since MP3 does not natively support chapters — they would need to be added separately. Sample rate and channel layout (stereo, mono) are preserved from the source MP3 by default. File sizes will be roughly similar at matching bitrates, though AAC's efficiency means a 128k M4A may be slightly smaller than a 128k MP3 at equivalent perceived quality.