Convert FLV to CAF — Free Online Tool

Extract and convert the audio track from an FLV (Flash Video) file into Apple's Core Audio Format (CAF), encoding it as uncompressed 16-bit PCM — ideal for archiving or further processing in macOS and iOS audio workflows. This tool runs entirely in your browser via FFmpeg.wasm, so your FLV file never leaves your device.

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

FLV files typically carry audio encoded as AAC or MP3 (via libmp3lame). During this conversion, FFmpeg discards the video stream entirely and transcodes the audio track into PCM 16-bit little-endian (pcm_s16le) — an uncompressed, lossless representation of the audio samples — wrapped in Apple's CAF container. Because the source audio is lossy (AAC or MP3) and must be decoded and re-encoded into raw PCM, a full decode-then-encode pipeline runs on every audio sample. No generational quality is lost beyond what was already lost in the original FLV's lossy compression, and the resulting CAF file will be significantly larger than the source because PCM carries no compression.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg program, the open-source multimedia processing engine that powers this conversion both on the desktop and in the browser via FFmpeg.wasm compiled to WebAssembly.
-i input.flv Specifies the input file — an FLV (Flash Video) container, which typically holds H.264 video alongside AAC or MP3 audio. FFmpeg probes this file to detect the streams it contains before processing.
-c:a pcm_s16le Sets the audio codec for the output to pcm_s16le — signed 16-bit little-endian PCM. This decodes the lossy AAC or MP3 audio from the FLV and re-encodes it as uncompressed raw audio samples, which is the default and most compatible PCM format for Apple's CAF container.
-b:a 128k Nominally sets the audio bitrate to 128 kbps, but this flag has no effect when the output codec is pcm_s16le because uncompressed PCM has a fixed bitrate determined solely by sample rate and bit depth (e.g., 44.1kHz stereo 16-bit = 1,411 kbps). This flag is effectively ignored by FFmpeg in this context.
output.caf Specifies the output file with a .caf extension, telling FFmpeg to wrap the decoded audio in Apple's Core Audio Format container — the native audio container for macOS and iOS, designed to support large files and a wide range of audio codecs including PCM, AAC, FLAC, and Opus.

Common Use Cases

  • Extracting the audio from a Flash-era video archive (e.g., old screencasts or webinars saved as FLV) into a format that Logic Pro, GarageBand, or other Apple DAWs can natively import without plugins.
  • Preparing audio from FLV livestream recordings for mastering on macOS, where CAF with PCM is the preferred interchange format for Apple's Core Audio APIs.
  • Converting FLV audio tracks to uncompressed PCM CAF as an archival step before applying noise reduction or audio restoration tools that require lossless input.
  • Stripping the video from an FLV file to produce a CAF audio file for use as a sound effect or voiceover asset in an Xcode project or iOS app.
  • Recovering usable audio from legacy FLV files downloaded before Flash's deprecation and converting them to a format compatible with modern Apple ecosystem tools like Final Cut Pro.
  • Batch-converting multiple FLV conference recordings to CAF PCM as a preprocessing step for transcription pipelines running on macOS.

Frequently Asked Questions

No — the output quality is capped by whatever lossy encoding was used in the original FLV. FLV files typically carry AAC or MP3 audio, both of which are lossy formats that permanently discard audio information during encoding. Converting to uncompressed PCM in CAF faithfully represents the decoded lossy audio with no additional compression artifacts, but it cannot restore frequencies or detail that were removed during the original FLV encoding. Think of it as a perfect copy of an imperfect original.
FLV stores audio in a compressed lossy format (AAC or MP3), which achieves small file sizes by discarding audio data the encoder judges to be perceptually unimportant. The CAF output uses pcm_s16le — uncompressed 16-bit PCM — which stores every audio sample as a raw number with no compression at all. A 10-minute FLV with 128k AAC audio might be around 10MB; the equivalent pcm_s16le CAF at 44.1kHz stereo would be roughly 100MB. If file size is a concern, consider choosing the AAC codec option for the CAF output instead.
Yes — CAF is Apple's native container format, and pcm_s16le is one of the most universally supported PCM variants within it. Applications like GarageBand, Logic Pro, Final Cut Pro, Xcode's audio asset pipeline, and Core Audio-based apps on macOS and iOS all handle CAF/PCM natively. However, CAF is not widely supported outside the Apple ecosystem, so if you need to share the audio with non-Apple tools, consider converting to WAV or AIFF instead, both of which also carry PCM audio.
No — CAF is a pure audio container and cannot hold video streams, so FFmpeg automatically drops the video track during this conversion. FLV metadata such as title tags or creation timestamps is also not carried over, since CAF has a different metadata schema and FFmpeg does not automatically map FLV metadata fields to CAF equivalents. The output file will contain only the decoded audio samples and essential technical headers like sample rate and channel count.
Because the output codec is pcm_s16le (uncompressed PCM), the -b:a bitrate flag in this command has no practical effect — PCM bitrate is fully determined by the sample rate and bit depth, not a configurable parameter. If you want a smaller file, switch to a compressed codec: replace '-c:a pcm_s16le' with '-c:a aac' and set '-b:a 192k' to get AAC audio in the CAF container, which CAF fully supports. For example: ffmpeg -i input.flv -c:a aac -b:a 192k output.caf.
Yes — on macOS or Linux you can use a shell loop to process many files at once: for f in *.flv; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.flv}.caf"; done. On Windows Command Prompt, use: for %f in (*.flv) do ffmpeg -i "%f" -c:a pcm_s16le "%~nf.caf". This is particularly useful for the desktop FFmpeg command shown on this page, since the browser tool is best suited for single files up to 1GB.

Technical Notes

FLV (Flash Video) was designed as a streaming container for the web, supporting video codecs like H.264 (via libx264) and audio codecs like AAC and MP3 — all lossy formats. When extracting audio from FLV into CAF, FFmpeg decodes the compressed audio stream to raw PCM samples in memory, then writes them as pcm_s16le (signed 16-bit integer, little-endian) into the CAF container. The 16-bit depth covers the standard CD-quality dynamic range of ~96dB, which is more than sufficient for most speech and music content sourced from FLV files. CAF natively supports much higher resolutions (24-bit, 32-bit float) if needed — you can substitute pcm_s24le or pcm_f32le in the command if your downstream tools require higher fidelity. One known limitation: if the source FLV contains multiple audio tracks (uncommon but possible in some Flash applications), only the first audio stream is extracted by default; use -map 0:a:1 to select an alternate track. Subtitle and chapter data from FLV is silently dropped since CAF supports neither. The -b:a flag in the resolved command is effectively a no-op for PCM codecs and can be omitted without changing the output.

Related Tools