How It Works
AU files typically store raw PCM audio with a minimal header, and the most common codec — pcm_s16be (signed 16-bit big-endian PCM) — is directly compatible with AIFC's native audio encoding. This conversion is essentially a remux of the raw PCM stream from Sun's simple AU container into Apple's AIFC container structure, which includes a richer chunk-based header supporting sample rate, channel count, and codec metadata. Because both formats natively support pcm_s16be, no re-encoding of the audio samples occurs; the waveform data itself is carried over intact. The -b:a 128k flag is passed as a bitrate hint, though for uncompressed PCM streams, actual bitrate is determined by sample rate and bit depth rather than a target encoding bitrate.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg multimedia processing engine. In this browser-based tool, FFmpeg runs as a WebAssembly (wasm) binary entirely within your browser — no data leaves your device. |
-i input.au
|
Specifies the input file in Sun AU format. FFmpeg's AU demuxer reads the file's minimal header to detect the PCM encoding type (commonly pcm_s16be), sample rate, and channel count before processing. |
-c:a pcm_s16be
|
Sets the output audio codec to signed 16-bit big-endian PCM, which is AIFC's default and most compatible audio encoding. Since pcm_s16be is also the most common codec in AU files, this typically results in a direct stream copy of the audio data with no quality change. |
-b:a 128k
|
Passes a 128 kbps target bitrate hint for the audio stream. For uncompressed pcm_s16be audio, this parameter does not meaningfully alter the output since PCM bitrate is determined by sample rate and channel count — it is included for compatibility with FFmpeg's encoder pipeline. |
output.aifc
|
Defines the output filename and instructs FFmpeg to use the AIFC muxer, which wraps the PCM audio data in Apple's chunk-based AIFF-C container structure, including the required COMM and SSND chunks that describe the audio format and store the waveform data. |
Common Use Cases
- Importing legacy Unix system sounds or early internet audio clips into Apple Logic Pro or GarageBand, which natively reads AIFC files
- Migrating a library of Sun Microsystems workstation audio assets to macOS-compatible AIFC for use in professional post-production workflows
- Preparing AU-encoded voice recordings or telephony samples (pcm_mulaw or pcm_alaw) for archival in the more descriptive AIFC container with proper codec labeling
- Converting AU audio exported from scientific or Unix-based signal processing tools into AIFC for use with audio analysis software on Apple platforms
- Repackaging early web audio files (common in late 1990s websites) from .au format into AIFC for long-term preservation with better metadata support
- Transcoding AU files with pcm_s8 or pcm_u8 audio into AIFC's pcm_s16be for higher fidelity playback compatibility on modern Apple software
Frequently Asked Questions
When the AU file uses pcm_s16be encoding — the most common variant — the conversion to AIFC with pcm_s16be is entirely lossless. The raw audio samples are transferred directly between containers without any re-encoding. If your AU file uses pcm_s8 or pcm_u8, those lower bit-depth streams are re-encoded to pcm_s16be in AIFC, which introduces a slight upsampling but no degradation — it simply represents the existing data in a higher bit-depth space.
AIFC supports pcm_s16be, pcm_alaw, and pcm_mulaw, all of which are also valid in AU files. However, AU can contain pcm_s8 and pcm_u8 audio, which AIFC does not natively support — in those cases, FFmpeg automatically transcodes the audio to pcm_s16be for the output. AIFC actually extends beyond AU's capabilities, additionally supporting 24-bit, 32-bit, and floating-point PCM formats, making it a more versatile destination container.
AU is designed with minimalism in mind — its header is extremely compact, often just 28 bytes. AIFC uses Apple's chunk-based AIFF structure, which includes named chunks for common factors, sound data, and format metadata, adding slightly more overhead. Additionally, if the source AU file used 8-bit PCM and the output is pcm_s16be, each audio sample now occupies twice the byte space, doubling the audio data size while improving fidelity and compatibility.
For uncompressed PCM codecs like pcm_s16be, the -b:a flag does not control quality in the traditional sense — bitrate is fixed by sample rate and channel count. To genuinely change quality, you would switch to a compressed AIFC codec like pcm_alaw or pcm_mulaw by replacing '-c:a pcm_s16be' with '-c:a pcm_alaw', or increase bit depth by using '-c:a pcm_s24be' or '-c:a pcm_s32be' for higher resolution output. For example: ffmpeg -i input.au -c:a pcm_s24be output.aifc
Yes — on the command line, you can use a shell loop to process multiple files. On Linux or macOS: for f in *.au; do ffmpeg -i "$f" -c:a pcm_s16be -b:a 128k "${f%.au}.aifc"; done. On Windows PowerShell: Get-ChildItem *.au | ForEach-Object { ffmpeg -i $_.FullName -c:a pcm_s16be -b:a 128k ($_.BaseName + '.aifc') }. The browser-based tool processes one file at a time, so the command line approach is recommended for bulk conversions.
AU files store very minimal metadata — the format supports only an optional text annotation field in the file header. AIFC uses a richer chunk-based structure that can hold metadata such as name, author, and copyright chunks, but FFmpeg's AU demuxer typically does not extract the AU annotation field as standard metadata tags. As a result, most AU-to-AIFC conversions via FFmpeg will produce an AIFC file with no embedded metadata beyond the technical audio parameters (sample rate, channels, codec).
Technical Notes
Both AU and AIFC use big-endian byte ordering for their PCM data, which means the pcm_s16be codec is natively at home in both containers — no byte-swapping or re-encoding is needed for the most common AU source files. AU's format is defined by a four-byte magic number (.snd) and a minimal fixed header encoding the data offset, data size, encoding type, sample rate, and channel count; AIFC wraps audio in Apple's IFF-derived chunk structure with discrete COMM (common) and SSND (sound data) chunks. One known limitation is that AU supports a handful of encoding types that have no direct AIFC equivalent, specifically the pcm_s8 and pcm_u8 variants, which will be upconverted to pcm_s16be. If your source AU file contains pcm_alaw or pcm_mulaw telephony-grade audio and you want to preserve that lossy compression in AIFC, you can use '-c:a pcm_alaw' or '-c:a pcm_mulaw' explicitly — AIFC supports both. For files over 1GB, the displayed FFmpeg command can be copied and run locally on any desktop with FFmpeg installed, bypassing the browser tool's file size handling.