Convert ALAC to AU — Free Online Tool
Convert ALAC audio files (.m4a) to Sun AU format by transcoding the lossless Apple codec to 16-bit big-endian PCM (pcm_s16be), the AU format's default uncompressed audio encoding. This is especially useful for Unix/Linux workflows, legacy audio toolchains, and applications that expect the simple Sun AU container.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your ALAC 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
ALAC (Apple Lossless Audio Codec) stores audio as losslessly compressed integer PCM data inside an MPEG-4 container. During this conversion, FFmpeg decodes the ALAC stream back to raw PCM, then re-encodes it as signed 16-bit big-endian PCM (pcm_s16be) and wraps it in the Sun AU container. Because ALAC is lossless, the decoded audio is a perfect reconstruction of the original PCM signal — no audio information is lost during decoding. However, if your ALAC source has a bit depth higher than 16 bits (e.g., 24-bit), the output will be dithered or truncated to 16 bits, which is a real reduction in precision. The AU format uses a minimal fixed header with no support for chapters or rich metadata tags, so any iTunes/ALAC metadata (album art, track titles, composer tags) will be discarded in the output file.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. In this browser-based tool, the equivalent FFmpeg.wasm binary runs entirely within your browser via WebAssembly — no data is sent to a server. |
-i input.m4a
|
Specifies the input file — an ALAC audio file stored in an MPEG-4 container with the .m4a extension. FFmpeg reads and demuxes the MPEG-4 container to access the compressed ALAC audio stream. |
-c:a pcm_s16be
|
Decodes the ALAC stream and re-encodes the audio as signed 16-bit big-endian PCM, which is the standard and most compatible audio encoding for Sun AU files. Big-endian byte order is required by the AU format specification, distinguishing this from WAV's little-endian pcm_s16le. |
output.au
|
Specifies the output filename with the .au extension. FFmpeg uses this extension to select the Sun AU muxer, which writes the minimal AU header followed by the raw pcm_s16be audio data. |
Common Use Cases
- Preparing audio samples for use with legacy Unix audio tools or older scientific audio processing software that reads Sun AU files natively.
- Feeding ALAC-sourced audio into Java applications, which have built-in AU playback support via the javax.sound API without requiring additional libraries.
- Converting Apple Music rips or iTunes purchases (stored as ALAC .m4a) into a format compatible with older Unix workstations or embedded systems running Solaris or early Linux.
- Supplying raw PCM audio in AU format to network streaming daemons or legacy internet radio tools that were built around the AU format's simple header structure.
- Archiving ALAC audio in a non-proprietary, platform-neutral container (AU with pcm_s16be) that is trivially parseable without Apple-specific libraries.
- Extracting uncompressed audio from ALAC files for use in audio analysis pipelines on Unix systems where MPEG-4 container parsing is unavailable.
Frequently Asked Questions
If your ALAC file is 16-bit, the conversion to AU (pcm_s16be) is mathematically lossless — ALAC decodes to the exact original PCM samples, which are then written directly into the AU container without any re-encoding or compression. However, if your ALAC source was recorded or stored at 24-bit depth, the output will be truncated to 16 bits, which does reduce dynamic range from roughly 144 dB to 96 dB. In that case, you are not losing quality introduced by compression artifacts, but you are losing bit depth precision from the original high-resolution recording.
The Sun AU format supports several audio encodings including pcm_s16be (signed 16-bit big-endian PCM), pcm_s8, pcm_u8, pcm_alaw, and pcm_mulaw. The pcm_s16be codec is used as the default here because it offers the best balance of fidelity and compatibility — it is the most commonly expected encoding in AU files on Unix systems and in Java audio APIs. The alaw and mulaw variants are lossy telephony codecs that would reduce audio quality, so pcm_s16be is the appropriate choice when converting from a lossless ALAC source.
No. The Sun AU format uses an extremely minimal header that does not support ID3 tags, iTunes metadata atoms, or embedded images. When FFmpeg writes the AU file, all metadata stored in the ALAC/MPEG-4 container — including track title, artist name, album name, genre, composer, and album art — will be silently dropped. If metadata preservation is important to you, AU is not an appropriate target format; consider FLAC or WAV instead, both of which support metadata tags.
To use mu-law encoding (common in telephony applications) instead of 16-bit PCM, modify the command by changing the codec flag: ffmpeg -i input.m4a -c:a pcm_mulaw output.au. Note that pcm_mulaw and pcm_alaw are lossy 8-bit codecs originally designed for voice telephony at 8 kHz, so you would also want to add -ar 8000 to downsample to the expected rate. For standard audio fidelity, pcm_s16be as shown in the default command is strongly preferred when converting from a lossless ALAC source.
Yes. On Linux or macOS, you can use a shell loop to process multiple files: for f in *.m4a; do ffmpeg -i "$f" -c:a pcm_s16be "${f%.m4a}.au"; done. On Windows Command Prompt, use: for %f in (*.m4a) do ffmpeg -i "%f" -c:a pcm_s16be "%~nf.au". This applies the same pcm_s16be transcoding to every ALAC file in the directory and outputs a corresponding .au file for each. The browser-based tool on this page processes one file at a time, so the command-line approach is recommended for batch workflows.
Sun Microsystems developed both the AU format and the Java platform, so Java's built-in javax.sound.sampled API has native support for AU files encoded with pcm_s16be, pcm_s8, pcm_ulaw, and pcm_alaw — no third-party libraries required. The output of this conversion (pcm_s16be AU) is directly compatible with Java's AudioSystem and Clip classes, making this conversion particularly useful for embedding audio in Java desktop applications, applets, or audio testing utilities.
Technical Notes
ALAC stores audio as losslessly compressed frames inside an MPEG-4 container (.m4a), supporting bit depths of 16 and 24 bits and sample rates from 1 Hz up to 384 kHz. The Sun AU format, by contrast, has a fixed 28-byte header containing encoding type, sample rate, channel count, and data size, with no provision for extensible metadata. When FFmpeg decodes ALAC and encodes to pcm_s16be AU, the output sample rate and channel count are preserved — a stereo 44.1 kHz ALAC file will produce a stereo 44.1 kHz AU file. However, 24-bit ALAC sources will be downconverted to 16 bits, which is a hard limitation of the pcm_s16be codec selection. The resulting AU file will be significantly larger than the ALAC source because pcm_s16be is completely uncompressed: expect roughly 10 MB per minute for stereo 44.1 kHz 16-bit audio, compared to the compressed ALAC source which might be 3–5 MB per minute. AU files also lack chapter markers, and the format does not support multiple audio tracks, so only the primary audio stream from the ALAC container is written to the output.