Convert CAVS to CAF — Free Online Tool

Convert CAVS video files to Apple's Core Audio Format (CAF), extracting and transcoding the AAC audio track to uncompressed PCM (16-bit signed little-endian) — ideal for bringing Chinese broadcast content into Apple's professional audio ecosystem with maximum fidelity.

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

CAVS files contain a video stream encoded with H.264 (libx264) and an AAC audio track. Since CAF is a pure audio container with no video support, the video stream is discarded entirely during this conversion. The AAC audio is decoded from the CAVS container and re-encoded as PCM 16-bit signed little-endian (pcm_s16le) inside a CAF wrapper. PCM is an uncompressed, lossless representation of the audio samples, so while there is a decode step from the original AAC, the output PCM faithfully represents those decoded samples with no further lossy compression. The CAF container is Apple's modern audio format that removes the 4GB file size limit of WAV and AIFF, making it suitable for long-form broadcast recordings.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary. In the browser-based tool, this runs via FFmpeg.wasm compiled to WebAssembly — no installation needed. When running locally on your desktop, this requires FFmpeg to be installed and available on your system PATH.
-i input.cavs Specifies the input CAVS file. FFmpeg will demux the CAVS container, identifying the H.264 video stream and AAC audio stream inside — the video stream will be ignored since CAF cannot contain video.
-c:a pcm_s16le Decodes the AAC audio from the CAVS file and re-encodes it as 16-bit signed little-endian PCM — an uncompressed audio format native to Apple's CoreAudio and compatible with every Apple audio application. This is the default codec for CAF output in this tool.
-b:a 128k Specifies a target audio bitrate of 128 kbps. For the pcm_s16le codec used here, this flag has no effect since PCM is uncompressed and its bitrate is fixed by sample rate and bit depth — it is included for consistency with the tool's interface but does not alter the output.
output.caf Defines the output filename and triggers FFmpeg to use the CAF container format based on the .caf extension. CAF is Apple's extensible audio container that supports large files and multiple audio codecs, wrapping the uncompressed PCM audio decoded from the CAVS source.

Common Use Cases

  • Extracting the audio commentary or dialogue from a CAVS-encoded Chinese broadcast recording for use in Apple Logic Pro or GarageBand for post-production mixing
  • Archiving the audio portion of CAVS broadcast content as uncompressed PCM in a CAF container for long-term preservation in an Apple-centric workflow
  • Preparing audio extracted from CAVS sports broadcast footage for synchronization with video in Final Cut Pro, which natively handles CAF files
  • Converting CAVS-encoded educational or documentary content to CAF PCM so audio editors can work on speech transcription or dubbing without lossy compression artifacts
  • Stripping audio from large CAVS broadcast archives to produce standalone CAF files that can be catalogued and previewed in macOS Finder without re-encoding to a compressed format
  • Extracting reference audio from CAVS-encoded test content for acoustic analysis tools on macOS that accept CAF as a native input format

Frequently Asked Questions

There is one decode step involved: the AAC audio inside the CAVS file must be decoded before being written as PCM into the CAF container. Since AAC is a lossy codec, the original compression artifacts from when the AAC was first encoded cannot be recovered. However, the PCM output is a mathematically exact representation of those decoded samples — no additional lossy compression is applied. Think of it as making a lossless copy of what the AAC sounded like, not a degraded one.
The CAVS file stores audio as compressed AAC, which typically achieves 10:1 or greater compression over raw PCM. When converted to pcm_s16le in CAF, each audio sample is stored as a full 16-bit integer with no compression. Additionally, the CAVS file contained a video stream that contributed to its size, but that stream is discarded — so the audio track alone, now uncompressed, will still be significantly larger than just the AAC portion of the original file. For a 1-hour CAVS recording at 128k AAC, the resulting CAF PCM file will be roughly 600 MB.
CAVS files use a container format with limited metadata support, and CAF has its own distinct metadata model based on Apple's chunk-based structure. FFmpeg does not automatically map CAVS container metadata to CAF metadata tags during this conversion. Broadcast-specific metadata such as program names or timecodes embedded in the CAVS stream will be lost. If preserving timestamps is critical, you would need to handle that separately using additional FFmpeg metadata flags.
Yes. CAF is a native Apple format and is fully supported across Final Cut Pro, Logic Pro, GarageBand, and the macOS CoreAudio framework. The pcm_s16le codec used in the output is standard 16-bit PCM, which every Apple audio application handles natively without requiring any additional codecs or plugins. You can import the resulting CAF file directly without any further conversion.
Since the output codec is pcm_s16le (uncompressed PCM), the -b:a 128k bitrate flag has no practical effect — PCM bitrate is determined entirely by the sample rate and bit depth, not a compression target. If you want a smaller compressed output, replace '-c:a pcm_s16le' with '-c:a aac' and then '-b:a 192k' will control the AAC quality. To use 24-bit PCM for higher resolution, replace 'pcm_s16le' with 'pcm_s24le'. CAF supports both of these codecs natively.
Yes. On macOS or Linux, you can wrap the command in a shell loop: 'for f in *.cavs; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.cavs}.caf"; done'. On Windows Command Prompt, use 'for %f in (*.cavs) do ffmpeg -i "%f" -c:a pcm_s16le "%~nf.caf"'. Each CAVS file will have its audio extracted and saved as a separate CAF PCM file. Note that the browser-based tool processes one file at a time, so the command line approach is more efficient for batch jobs.

Technical Notes

CAVS (AVS-1) uses an H.264 video stream and AAC audio, both well-supported by FFmpeg. When converting to CAF, FFmpeg discards the video stream entirely since CAF is an audio-only container — there is no -vn flag needed because CAF has no video codec options. The default output codec selected here is pcm_s16le, a 16-bit little-endian uncompressed PCM format, which is the most universally compatible PCM variant in Apple's CoreAudio stack and matches CD-quality bit depth. If the source CAVS audio was sampled at a non-standard rate (common in Chinese broadcast content, which sometimes uses 44100 Hz or 48000 Hz), FFmpeg will preserve that sample rate in the CAF output without resampling unless explicitly instructed otherwise. CAF supports files larger than 4GB, which is relevant for long broadcast recordings that would overflow a WAV container. The -b:a 128k flag in the command is technically inert for PCM codecs but harmless. One known limitation: CAF files are not widely supported outside of Apple platforms, so if the resulting file needs to be used on non-Apple systems, converting to WAV or FLAC would be more appropriate.

Related Tools