Convert FLAC to AAC — Free Online Tool

Convert FLAC lossless audio to AAC format using the native FFmpeg AAC encoder at 128kbps — a widely compatible lossy format used by Apple, Android, and streaming platforms. This tool runs entirely in your browser via WebAssembly, so your audio files never leave your device.

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

FLAC stores audio as a lossless compressed PCM stream, meaning every sample from the original recording is preserved exactly. Converting to AAC involves fully decoding the FLAC stream back to raw PCM audio, then re-encoding it using the AAC codec — a perceptual lossy encoder that discards audio information deemed inaudible to human hearing (such as sounds masked by louder simultaneous frequencies). Because FLAC and AAC use fundamentally different compression strategies, this is a true transcode — not a remux — and the resulting AAC file will be permanently lossy. The default output bitrate is 128kbps, which is AAC's sweet spot for general listening: noticeably smaller than FLAC while retaining good perceptual quality for most content.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine that powers this conversion both in the browser (via FFmpeg.wasm) and on the desktop command line.
-i input.flac Specifies the input file as a FLAC audio file. FFmpeg reads the FLAC container, identifies the lossless FLAC audio stream, and decodes it to raw PCM audio in memory for re-encoding.
-c:a aac Selects FFmpeg's built-in AAC encoder for the audio stream. This encoder implements the Advanced Audio Coding standard and produces output compatible with Apple devices, Android, browsers, and most modern media players.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second — the default balance point between file size and perceptual quality for AAC. At this bitrate, most listeners find AAC output indistinguishable from the lossless FLAC source for typical music content.
output.aac Specifies the output filename with the .aac extension, which tells FFmpeg to write a raw ADTS AAC bitstream. This format is broadly compatible but has limited metadata support; rename to .m4a if you need full tag and artwork embedding in an MPEG-4 container.

Common Use Cases

  • Importing a high-quality FLAC music library into iTunes or Apple Music, which requires AAC or MP3 for device sync to older iPods and iPhones
  • Reducing the file size of FLAC recordings (which can be 20–40MB per track) to AAC for upload to streaming platforms like SoundCloud or Bandcamp that distribute in lossy formats anyway
  • Preparing FLAC archival recordings for playback on Android devices or car stereos that support AAC but not FLAC natively
  • Converting FLAC podcast masters to AAC for distribution, where lossy compression dramatically reduces download size without perceptible quality loss for spoken word
  • Creating AAC copies of FLAC files to share with collaborators who need smaller, widely playable files without access to FLAC-capable players
  • Optimizing storage on mobile devices by converting a local FLAC library to AAC, freeing up space while maintaining better quality than equivalent-bitrate MP3

Frequently Asked Questions

For most listeners in typical playback conditions, AAC at 128kbps is considered 'transparent' or near-transparent for music — meaning it's difficult to distinguish from the lossless source in a blind test. However, trained ears or critical listening through high-quality headphones may detect subtle artifacts, particularly in complex high-frequency content like cymbals or reverb tails. If quality is a priority, consider using 192kbps or 256kbps by changing the -b:a flag in the FFmpeg command.
FLAC losslessly compresses PCM audio, typically achieving file sizes of 20–40MB for a 4-minute track depending on bit depth and sample rate. AAC at 128kbps uses perceptual coding to discard audio data that psychoacoustic models predict the human ear won't notice, resulting in a fixed-bitrate stream of roughly 3–4MB for the same track — a 6x to 10x reduction. Unlike FLAC's lossless compression, this size reduction is achieved by permanently removing audio information.
FFmpeg will attempt to copy standard metadata tags from the FLAC container to the AAC output file. Common Vorbis comment tags in FLAC — such as ARTIST, ALBUM, TITLE, and TRACKNUMBER — are mapped to their AAC/MPEG-4 equivalents during conversion. However, FLAC-specific metadata like ReplayGain tags and embedded cue sheets are not supported in bare .aac files and will be lost. If metadata preservation is critical, consider outputting to .m4a (MPEG-4 Audio) instead, which is a container format with better tag support for AAC streams.
This tool uses FFmpeg's built-in 'aac' encoder, which is included in all standard FFmpeg builds. The 'libfdk_aac' encoder (from the Fraunhofer FDK library) is widely considered to produce higher quality output at lower bitrates, but it is not included in most pre-built FFmpeg distributions due to licensing restrictions. For 128kbps and above, the quality difference between the two encoders is minimal for most listeners. If you run the command locally and have libfdk_aac available, substitute -c:a libfdk_aac in the command for marginally better efficiency.
Replace the value after -b:a with your desired bitrate. For example, use -b:a 256k for higher quality suitable for music production sharing, or -b:a 96k for a smaller file size acceptable for speech and podcasts. AAC is efficient enough that 192kbps is considered high quality for music by most listeners, while 64kbps is still usable for voice. The full command at 256kbps would be: ffmpeg -i input.flac -c:a aac -b:a 256k output.aac
The single-file command shown on this page processes one file at a time. To batch convert an entire folder of FLAC files on Linux or macOS, you can use a shell loop: for f in *.flac; do ffmpeg -i "$f" -c:a aac -b:a 128k "${f%.flac}.aac"; done. On Windows Command Prompt, use: for %f in (*.flac) do ffmpeg -i "%f" -c:a aac -b:a 128k "%~nf.aac". This is one of the key reasons the page displays the raw FFmpeg command — for bulk processing of large libraries that exceed the browser tool's 1GB single-file limit.

Technical Notes

FLAC audio can be encoded at various bit depths (16-bit, 24-bit) and sample rates (44.1kHz, 48kHz, 96kHz, etc.). FFmpeg's AAC encoder handles sample rate conversion automatically, but the standard AAC format supports a maximum sample rate of 96kHz. If your FLAC source is 24-bit high-resolution audio, be aware that the output AAC file will be lossy regardless of bitrate — converting 24-bit FLAC to AAC is a one-way downgrade and the original lossless data cannot be recovered from the AAC file. The output file extension .aac produces a raw ADTS (Audio Data Transport Stream) bitstream, which has limited metadata support. For better compatibility with Apple devices, iTunes, and broader tag support, many users prefer to output to .m4a instead — this wraps the same AAC audio in an MPEG-4 container that supports full metadata, chapter markers, and artwork embedding, though that requires a different FFmpeg output filename. The native FFmpeg AAC encoder used here is VBR-capable but this command specifies CBR via -b:a for predictable file sizes. FFmpeg's built-in AAC encoder has been significantly improved in recent versions and is suitable for general use, though libfdk_aac remains the reference-quality option for critical applications.

Related Tools