Extract Audio from WebM to CAF — Free Online Tool

Extract audio from WebM files and save it as a CAF file using PCM (uncompressed) audio — ideal for Apple development workflows, Logic Pro, and Core Audio pipelines. This tool decodes the Opus or Vorbis audio track from your WebM container and re-encodes it as 16-bit PCM signed little-endian audio inside Apple's Core Audio Format container, entirely in your browser.

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

WebM files typically carry audio encoded with either Opus or Vorbis — both lossy compressed codecs optimized for web streaming. During this conversion, FFmpeg discards the video stream entirely (the VP9 video track is dropped without being decoded) and decodes the compressed audio track to raw PCM samples. Those samples are then written as 16-bit signed little-endian PCM (pcm_s16le) inside a CAF container. This means the output is uncompressed audio — significantly larger than the WebM source but free of any codec dependency issues in Apple's ecosystem. The lossy-to-PCM path means you're not introducing additional compression artifacts, but you also cannot recover the fidelity lost when the WebM's Opus or Vorbis audio was originally encoded.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg program — the open-source multimedia processing engine that powers this conversion both in the browser via WebAssembly and locally on your desktop.
-i input.webm Specifies the input file — a WebM container which may hold a VP9 video stream and an Opus or Vorbis audio stream. FFmpeg reads and demuxes both streams, making them available for selective processing.
-vn Disables video output entirely — the VP9 video stream from the WebM file is discarded without being decoded, so no video data appears in the CAF output. This is what makes the operation an audio extraction rather than a full conversion.
-c:a pcm_s16le Decodes the WebM's compressed Opus or Vorbis audio and re-encodes it as 16-bit signed PCM in little-endian byte order — an uncompressed audio format natively understood by all Apple Core Audio tools including Logic Pro, Final Cut Pro, and Xcode.
-b:a 128k Sets a target audio bitrate of 128 kbps, though this flag has no practical effect when the output codec is pcm_s16le, since PCM is uncompressed and its bitrate is determined entirely by sample rate and bit depth. It is included for command consistency and would become relevant if you switch to a compressed codec like AAC.
output.caf Defines the output filename and instructs FFmpeg to wrap the decoded PCM audio in Apple's Core Audio Format container — a format designed for Apple platform compatibility and capable of handling large uncompressed audio files beyond the 4 GB limit of WAV or AIFF.

Common Use Cases

  • Importing audio from a WebM screen recording into Logic Pro or GarageBand, which natively support CAF but not WebM or Opus
  • Preparing a WebM audio track for use in an iOS or macOS app that uses the Core Audio framework, where CAF with PCM is a safe, dependency-free choice
  • Extracting a voice-over or narration from a WebM video downloaded from a web platform, to use as source audio in Final Cut Pro
  • Converting web-sourced WebM audio into a high-compatibility uncompressed format before handing off to a sound designer working in an Apple-centric studio environment
  • Archiving the audio from a WebM file in an uncompressed CAF format that avoids codec licensing concerns for long-term storage in Apple workflows
  • Running local batch FFmpeg commands on files over 1GB using the displayed command as a reference, after prototyping the conversion in-browser on a smaller sample

Frequently Asked Questions

The conversion from WebM's Opus or Vorbis audio to PCM does not add any new compression artifacts — PCM is uncompressed and captures the decoded audio exactly. However, the original Opus or Vorbis encoding in the WebM file was lossy, so any quality loss from that original compression step is already baked in and cannot be recovered. Think of it as unboxing the audio into a lossless container, not restoring it to its pre-compression state.
WebM audio codecs like Opus and Vorbis are highly efficient lossy formats that compress audio significantly — Opus at 128k can sound transparent while using a fraction of the data of raw audio. CAF with pcm_s16le stores uncompressed audio at approximately 10 MB per minute per channel at 44.1 kHz, so a multi-minute WebM file can expand dramatically. This is expected behavior and the tradeoff for having a codec-free, universally readable audio stream in Apple tools.
Yes — CAF with pcm_s16le is one of the most compatible audio formats in Apple's Core Audio ecosystem and is explicitly supported by AVFoundation, AudioToolbox, and the iOS/macOS audio APIs without any additional codec setup. It is a preferred format for game audio assets, UI sounds, and audio units in Apple platform development. The file will load reliably on any Apple platform without requiring third-party decoder support.
No — CAF is a pure audio container and does not support chapters, subtitles, or video metadata. The WebM format supports chapters and subtitles, but none of that information is transferred during this conversion. Only the first audio track's decoded audio data is written to the output file. If your WebM has multiple audio tracks, only the default track will be extracted.
The default command uses pcm_s16le (uncompressed 16-bit PCM), which ignores the -b:a bitrate flag since PCM bitrate is determined by sample rate and bit depth rather than compression. To use a compressed codec instead — for example AAC — you would change the command to: ffmpeg -i input.webm -vn -c:a aac -b:a 192k output.caf. CAF also supports flac (lossless), libopus, and pcm_s24le or pcm_s32le for higher bit-depth uncompressed audio. Replace -c:a and the codec name accordingly.
Yes — on macOS or Linux you can use a shell loop: for f in *.webm; do ffmpeg -i "$f" -vn -c:a pcm_s16le "${f%.webm}.caf"; done. On Windows with PowerShell, use: Get-ChildItem *.webm | ForEach-Object { ffmpeg -i $_.FullName -vn -c:a pcm_s16le ($_.BaseName + '.caf') }. The browser-based tool processes one file at a time, so the FFmpeg command reference is especially useful for bulk workflows or files exceeding the 1GB in-browser limit.

Technical Notes

The CAF container was designed by Apple specifically to address the 4 GB file size ceiling of WAV and AIFF, making it suitable for very long uncompressed recordings. In this conversion, the output codec is pcm_s16le — 16-bit signed PCM in little-endian byte order — which matches standard CD-quality audio depth and is the safest choice for cross-tool compatibility within Apple's ecosystem. WebM's default audio codec, Opus, operates on 48 kHz sample frames internally, so if your WebM audio is Opus-encoded, the decoded PCM output will be at 48 kHz, which CAF handles without issue but may differ from a 44.1 kHz project in Logic Pro or Final Cut Pro (those applications will resample on import). Vorbis-encoded WebM audio may be at different sample rates. The -vn flag ensures the VP9 video stream is never decoded — it is simply skipped — which makes the extraction fast and avoids unnecessary CPU work on the video data. CAF does not support multiple audio streams, so if your WebM contains multiple audio tracks (e.g., multiple language dubs), only the default stream is extracted; use -map 0:a:1 and similar options in your local FFmpeg command to target a specific track.

Related Tools