Convert MKV to CAF — Free Online Tool
Convert MKV video files to CAF (Core Audio Format) by extracting the audio stream and encoding it as uncompressed PCM — Apple's preferred lossless audio container for macOS and iOS development. This tool discards the video track entirely and delivers a high-fidelity audio file ready for use in Xcode projects, Logic Pro, or Core Audio pipelines.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MKV 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
MKV is a multimedia container that bundles video, audio, subtitles, and metadata into a single file. CAF is an audio-only container developed by Apple, so this conversion begins by stripping the video stream completely — no video re-encoding takes place. The audio stream from the MKV (which may be AAC, MP3, Opus, Vorbis, or FLAC) is decoded and then re-encoded as 16-bit signed little-endian PCM (pcm_s16le) inside the CAF wrapper. PCM is uncompressed, meaning no audio quality is lost beyond what was already present in the original lossy or lossless source. The resulting CAF file is natively readable by macOS, iOS, and Apple development frameworks without any additional codecs or plugins.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg program. In this browser tool, FFmpeg runs as a WebAssembly binary entirely within your browser — no files leave your machine. The same command can be run verbatim on any desktop system with FFmpeg installed. |
-i input.mkv
|
Specifies the input file as an MKV (Matroska) container. FFmpeg reads and demuxes all streams — video, audio, subtitles — from this file, though only the audio stream will be used in the output. |
-c:a pcm_s16le
|
Sets the audio codec for the output to 16-bit signed little-endian uncompressed PCM. This is Apple's preferred lossless audio encoding for CAF files and ensures full compatibility with Core Audio, AVFoundation, and Xcode without any decoding overhead. |
-b:a 128k
|
Specifies a target audio bitrate of 128 kbps. For PCM encoding this parameter has no practical effect since uncompressed PCM has a fixed bitrate determined by sample rate and bit depth rather than compression settings — it is included here as a passthrough from the tool's default configuration. |
output.caf
|
Defines the output filename and tells FFmpeg to write a CAF (Core Audio Format) container. FFmpeg infers the container format from the .caf extension and automatically discards the MKV video and subtitle streams since CAF is an audio-only format. |
Common Use Cases
- Extracting a clean, uncompressed audio track from an MKV screen recording for use as a sound effect or voiceover asset in an Xcode or SpriteKit iOS project
- Pulling the audio from an MKV movie or lecture recording to import into Logic Pro on macOS, which reads CAF natively and handles large PCM files efficiently
- Converting an MKV podcast recording to CAF PCM so it can be processed with Apple's Core Audio APIs or AVFoundation framework during app development
- Archiving the audio from an MKV file in an uncompressed format that sidesteps the 4GB file size limit of WAV and AIFF, which CAF was specifically designed to overcome
- Extracting audio from an MKV gameplay capture to use as a raw audio asset in a macOS game built with SpriteKit or SceneKit
- Supplying a CAF file to a macOS command-line tool or audio unit plugin test harness that expects Apple's native audio container format
Frequently Asked Questions
If your MKV contains a lossy audio codec like AAC, MP3, Opus, or Vorbis, that source audio has already been compressed and some quality was lost at that point. The conversion decodes it and stores the result as uncompressed PCM in the CAF file, so no additional quality is lost during this conversion step. If your MKV audio is already lossless (FLAC), the output PCM will be a transparent representation of that original signal. The only ceiling on quality is whatever was in the source MKV.
PCM (pcm_s16le) is the default audio codec for CAF because it is the most universally compatible and requires zero decoding overhead — important for real-time audio in iOS and macOS applications. Apple's Core Audio and AVFoundation frameworks can read PCM CAF files directly without any codec negotiation. While CAF does support AAC and FLAC, PCM ensures the broadest compatibility across all Apple tools, Xcode, and audio development workflows without assumptions about codec support.
All of them are discarded. CAF is a pure audio container and has no mechanism to store video streams, subtitle tracks, chapter markers, or metadata beyond basic audio properties. The conversion extracts only one audio stream from the MKV. If your MKV has multiple audio tracks, FFmpeg selects the best one by default (typically the first track), so if you need a specific language or track, you would need to modify the command to target it explicitly with a flag like '-map 0:a:1'.
PCM audio is uncompressed, so the CAF file size is determined purely by duration, sample rate, and bit depth — not by the original MKV file size. A 16-bit stereo PCM file at 44.1 kHz produces approximately 10 MB per minute. This means a 500 MB MKV movie with a 90-minute audio track could produce a CAF file larger than 900 MB. CAF was specifically engineered to handle files over 4 GB, which is a hard limit for WAV and AIFF, so this is not a problem for the container itself.
Yes. The command uses '-c:a pcm_s16le' which produces 16-bit signed little-endian PCM, the standard CD-quality depth. For 24-bit audio (common in professional audio and Logic Pro workflows) replace that flag with '-c:a pcm_s24le'. For 32-bit floating point, use '-c:a pcm_f32le'. The CAF container supports all of these variants natively. If your source MKV audio has a higher bit depth (for example, a 24-bit FLAC track), using pcm_s24le in the output will preserve that full resolution.
Add '-map 0:a:N' before the output filename, where N is the zero-based index of the audio track you want. For example, to extract the second audio track (index 1), the command becomes: 'ffmpeg -i input.mkv -map 0:a:1 -c:a pcm_s16le output.caf'. You can identify available tracks and their indices by running 'ffmpeg -i input.mkv' and inspecting the stream list in the output. This is particularly useful for MKV files containing multiple dubbed language tracks.
Technical Notes
CAF imposes no meaningful file size ceiling, unlike WAV and AIFF which are capped at 4 GB — a genuine concern when working with uncompressed PCM audio from long MKV recordings. The pcm_s16le codec stores samples as signed 16-bit integers in little-endian byte order, which is the native format for most modern processors and requires no byte-swapping overhead. Sample rate is preserved from the source MKV audio stream by default; if the source is 48 kHz (common in video production), the output CAF will also be 48 kHz, not resampled. CAF does not support multiple audio tracks, subtitles, or chapter data, so any of those features present in the MKV are silently dropped. The '-b:a 128k' bitrate flag in the resolved command is technically irrelevant for PCM encoding since uncompressed PCM does not use bitrate-based compression — the actual bitrate is determined by sample rate and bit depth. CAF files are natively supported on macOS 10.4 Tiger and later and on all iOS versions, but have essentially no support on Windows or Linux without additional libraries, making this format most appropriate for Apple-ecosystem workflows.