Convert SWF to CAF — Free Online Tool

Extract and convert audio from SWF Flash files into Apple's Core Audio Format (CAF), encoding the output as uncompressed 16-bit PCM audio. This is ideal for pulling clean audio tracks from legacy Flash animations or interactive content for use in Apple-native workflows like Logic Pro or Core Audio APIs.

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

SWF files typically carry audio encoded as MP3 (via the libmp3lame codec) or AAC, embedded alongside vector graphics, animation timelines, and interactive ActionScript content. During this conversion, FFmpeg demuxes the SWF container to extract the audio stream and discards all visual and interactive data — there is no video output because CAF is a pure audio container. The audio is then decoded from its original MP3 or AAC encoding and re-encoded as uncompressed PCM 16-bit little-endian audio (pcm_s16le) inside the CAF container. This means the output is lossless in terms of bit depth representation, though the original MP3/AAC source was already lossy, so any compression artifacts from the source are baked in. The CAF container itself supports very large file sizes and is natively compatible with macOS and iOS audio frameworks.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which handles demuxing the SWF container, decoding its internal audio stream, and encoding the output into CAF format — all within your browser via WebAssembly in this tool.
-i input.swf Specifies the input SWF file. FFmpeg's SWF demuxer parses the binary tag structure of the Flash file to locate and extract the embedded audio stream (typically MP3 or AAC), ignoring visual and interactive data.
-c:a pcm_s16le Sets the audio codec for the CAF output to uncompressed 16-bit signed PCM in little-endian byte order. This decodes the lossy MP3 or AAC audio from the SWF into raw PCM samples, which is the standard uncompressed format expected by Apple's Core Audio framework.
-b:a 128k Specifies an audio bitrate target of 128 kilobits per second. For uncompressed PCM codecs like pcm_s16le, this flag has no practical effect since PCM bitrate is determined entirely by sample rate and bit depth rather than a compression target — the actual bitrate will be fixed by the source audio's properties.
output.caf Defines the output file in Apple's Core Audio Format. FFmpeg infers from the .caf extension that it should write a CAF container, which wraps the pcm_s16le audio data in a structure natively readable by macOS, iOS, Logic Pro, GarageBand, and the Core Audio and AVFoundation APIs.

Common Use Cases

  • Recovering the soundtrack or voice-over audio from an archived Flash-based e-learning module for use in a modern macOS audio editing project in Logic Pro or GarageBand
  • Extracting background music or sound effects from a legacy SWF animation to re-use assets in an iOS app's Core Audio pipeline
  • Converting Flash game audio tracks into CAF format for playback testing with Apple's AVFoundation framework during a mobile game port
  • Archiving audio content from old SWF-based web presentations that are no longer playable in modern browsers since Flash's end-of-life in December 2020
  • Pulling interview or narration audio recorded and distributed in SWF format into an uncompressed PCM CAF file for professional audio restoration or cleanup
  • Preparing audio extracted from corporate Flash training videos for import into Final Cut Pro or other Apple-native post-production tools

Frequently Asked Questions

No — the conversion cannot recover quality lost during the original MP3 or AAC encoding inside the SWF. FFmpeg decodes the lossy source audio and stores it as uncompressed PCM in the CAF file, which means no additional compression artifacts are introduced, but the original lossy compression artifacts remain. The CAF output will be bit-for-bit accurate to what was decodable from the SWF, just in a larger, uncompressed container.
SWF files store audio as compressed MP3 or AAC, which can be 10–20x smaller than uncompressed audio. The CAF output uses pcm_s16le — raw, uncompressed 16-bit PCM — so the audio data is no longer compressed at all. A 5-minute MP3 track inside an SWF might be a few megabytes, whereas the same audio as uncompressed 16-bit stereo PCM at 44.1kHz in CAF will be roughly 50–60MB.
CAF does support AAC natively, so if your SWF contains AAC audio, you could copy the stream directly with '-c:a copy' to avoid any re-encoding. However, CAF does not support MP3, which is the most common audio codec in SWF files (flv1/libmp3lame). Since the SWF default codec is MP3, transcoding to pcm_s16le or another supported CAF codec like AAC or FLAC is required in most cases.
All of it is discarded. CAF is an audio-only container and has no capability to store video, vector graphics, animation data, or ActionScript interactivity. FFmpeg will automatically ignore the video stream when writing to a CAF output. If you need to preserve the visual content, you would need to target a video container like MP4 or MKV instead.
Replace '-c:a pcm_s16le' with '-c:a flac' in the command: 'ffmpeg -i input.swf -c:a flac output.caf'. FLAC is lossless and compressed, so the output file will be significantly smaller than the pcm_s16le version while retaining full fidelity to the decoded source. You can also use '-c:a aac -b:a 192k' if you want a smaller lossy output that is still natively compatible with Apple devices.
The displayed command processes a single file, but you can batch convert on the command line with a shell loop. On macOS or Linux, run: 'for f in *.swf; do ffmpeg -i "$f" -c:a pcm_s16le "${f%.swf}.caf"; done'. On Windows Command Prompt, use: 'for %f in (*.swf) do ffmpeg -i "%f" -c:a pcm_s16le "%~nf.caf"'. The browser-based tool processes files individually, so batch use is best handled locally.

Technical Notes

SWF files are inherently complex containers: they interleave compressed vector drawing commands, sprite timelines, ActionScript bytecode, and audio/video streams in a binary tag-based structure. FFmpeg's SWF demuxer can reliably extract audio tagged as MP3 (SoundStreamBlock tags using libmp3lame) or AAC, but it does not execute ActionScript or render vector graphics — it treats the SWF purely as a media container. The CAF format was designed by Apple to overcome the 4GB file size limit of AIFF and WAV, and it stores rich metadata including channel layouts, sample rate, and edit lists. However, metadata embedded in the SWF's XMP or file header is not transferred to the CAF output during this conversion. The pcm_s16le codec produces standard CD-quality 16-bit audio, which is compatible with virtually all Apple audio tools. If the source SWF has a sample rate other than 44.1kHz (Flash commonly used 11025Hz, 22050Hz, or 44100Hz), FFmpeg will preserve the original sample rate in the CAF output unless you explicitly resample with '-ar 44100'. Users processing SWF files with multiple audio streams should note that this tool extracts only the first audio stream by default.

Related Tools