Convert MPEG to CAF — Free Online Tool
Convert MPEG video files to CAF (Core Audio Format), extracting the audio stream and encoding it as uncompressed PCM audio in Apple's extensible container. Ideal for importing legacy broadcast or DVD-compatible MPEG audio into macOS and iOS audio workflows without lossy re-encoding artifacts from the original MP2 or AAC track.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MPEG 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
MPEG files typically carry video encoded as MPEG-1 or MPEG-2 alongside audio in MP2, MP3, or AAC format. Since CAF is a pure audio container with no video support, FFmpeg discards the video stream entirely and focuses solely on the audio. In this conversion, the audio is transcoded from the MPEG audio codec (commonly MP2 at 192k) into 16-bit little-endian PCM (pcm_s16le), which is the default CAF audio codec. This means the compressed, lossy MP2 audio is decoded to raw PCM samples and then stored uncompressed inside the CAF container — a one-way quality ceiling, since the original lossy compression cannot be undone, but the output will introduce no additional encoding artifacts. The resulting CAF file is fully compatible with Core Audio on macOS and iOS.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg program, the open-source multimedia processing engine that powers this conversion. In the browser-based tool, this runs via FFmpeg.wasm compiled to WebAssembly — no installation required. |
-i input.mpeg
|
Specifies the input MPEG file. FFmpeg will detect whether it is an MPEG-1 System Stream or MPEG-2 Program Stream and identify the contained video (mpeg1video or mpeg2video) and audio (typically MP2) streams automatically. |
-c:a pcm_s16le
|
Sets the audio codec for the output to 16-bit signed little-endian PCM. Since CAF cannot store MP2 audio, this transcodes the MPEG's compressed audio into uncompressed PCM — the native uncompressed format for Apple's Core Audio framework. |
-b:a 128k
|
Specifies a target audio bitrate of 128 kbps. For PCM codecs like pcm_s16le, bitrate is determined by sample rate and bit depth rather than this flag, so this parameter has minimal effect on PCM output but is included for consistency when switching to a bitrate-controlled codec like AAC or Opus. |
output.caf
|
Defines the output filename and signals FFmpeg to write a Core Audio Format container. The .caf extension causes FFmpeg to use Apple's CAF muxer, which wraps the PCM audio data with the CAF header structure required by macOS and iOS audio APIs. |
Common Use Cases
- Extracting dialogue or narration audio from legacy broadcast MPEG recordings to import into Logic Pro or GarageBand for editing
- Pulling the audio track from DVD-ripped MPEG files to use as source material in an iOS audio production app that only accepts CAF input
- Converting archival MPEG broadcast recordings to CAF/PCM for lossless-quality staging before further processing in an Apple audio pipeline
- Stripping the audio from MPEG video captured by legacy set-top boxes or DVRs to create a CAF file compatible with AVFoundation-based applications
- Preparing MPEG audio content for use in Xcode projects or iOS games, where CAF is the preferred uncompressed audio format for sound assets
Frequently Asked Questions
No — the audio quality cannot exceed what was captured in the original MPEG file. The MP2 or other compressed audio in the MPEG is lossy, meaning some audio information was permanently discarded during its original encoding. Transcoding to uncompressed PCM inside CAF simply decodes that lossy stream into raw samples without adding further degradation, but it does not restore the lost quality. Think of it as a quality ceiling, not a quality boost.
CAF is a pure audio container format — it cannot hold video streams by design. FFmpeg automatically drops the video track when writing to a CAF output because there is no valid video codec target in that container. This is expected and intentional behavior, not an error. If you need to keep the video, you should choose a video-capable output format instead.
The MP2 audio (the most common audio codec in MPEG-1 and MPEG-2 files) is fully decoded by FFmpeg and then re-encoded as 16-bit signed little-endian PCM (pcm_s16le) inside the CAF container. CAF does not natively support MP2 as a codec, so a transcode is necessary. The pcm_s16le codec produces uncompressed audio, which means the CAF file will be significantly larger than the source MPEG but will not introduce any new compression artifacts.
Replace '-c:a pcm_s16le' with your preferred codec. For AAC, use '-c:a aac -b:a 192k'; for FLAC (lossless compression, smaller than PCM), use '-c:a flac'; for Opus, use '-c:a libopus -b:a 128k'. CAF supports all of these codecs natively. If you switch to a bitrate-based codec like AAC or Opus, you can adjust the '-b:a' flag to control output file size and quality.
Yes. On macOS or Linux, you can use a shell loop: 'for f in *.mpeg; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.mpeg}.caf"; done'. On Windows Command Prompt, use 'for %f in (*.mpeg) do ffmpeg -i "%f" -c:a pcm_s16le "%~nf.caf"'. This applies the same conversion settings to every MPEG file in the current directory, which is especially useful for processing archival collections.
Expect the CAF file to be significantly larger — often 5 to 15 times the size of the audio-only portion of the MPEG, depending on the original bitrate and duration. A typical MP2 audio track at 192 kbps will expand to approximately 1.4 MB per minute when decoded to 16-bit PCM at 44.1 kHz stereo (about 10 MB/min). The video data from the MPEG is discarded, so the CAF will contain only audio, but that audio will be stored uncompressed.
Technical Notes
MPEG containers (both .mpeg and .mpg) conform to the MPEG-1 System Stream or MPEG-2 Program Stream specifications, and their audio is almost universally MP2 (MPEG-1 Audio Layer II) at bitrates between 128 kbps and 384 kbps — a codec specifically absent from CAF's supported codec list. This makes a full transcode mandatory; stream copying (-c:a copy) is not an option here. The output codec, pcm_s16le, stores 16-bit signed integers in little-endian byte order, which is the standard uncompressed format used by Core Audio on Apple platforms and directly consumable by AVAudioPlayer, AVFoundation, and most DAWs on macOS. One known limitation: MPEG files often carry minimal or non-standard metadata (title, artist, etc.), and most of that metadata is not reliably transferred to CAF during conversion — applications consuming the CAF file will typically see no embedded tags. Additionally, if the source MPEG carries multiple audio tracks (rare but possible in MPEG-2 Program Streams), FFmpeg will select only the first audio stream by default; use '-map 0:a:1' to select an alternate track. CAF supports very large files by design (overcoming the 4GB limit of WAV/AIFF), so long-duration MPEG recordings can be fully converted without file size concerns.