Convert SWF to AAC — Free Online Tool
Extract and convert the audio track from a SWF Flash file into AAC format, stripping away the Flash container and video data while encoding the audio using the modern AAC codec. This is the cleanest way to salvage audio from legacy Flash animations or interactive content for playback on any modern device.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your SWF 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
SWF files typically contain audio encoded as MP3 (via libmp3lame) or AAC, wrapped inside Adobe's proprietary Flash container alongside vector graphics, ActionScript, and video data. During this conversion, FFmpeg demuxes the SWF container to extract the raw audio stream, then re-encodes it as AAC at the specified bitrate. Because the source audio in SWF is often MP3, this is a lossy-to-lossy transcode — the audio is decoded from its original MP3 encoding and re-encoded as AAC — which introduces a small amount of generation loss. The output is a standalone .aac file containing only the audio, with no video, animation, or interactive elements. FFmpeg's built-in AAC encoder handles the encoding, producing a file that is compatible with virtually every modern browser, mobile device, and media player.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles all demuxing, decoding, encoding, and muxing. In this context it is running via WebAssembly in your browser, but the command is identical to what you would run on a desktop installation. |
-i input.swf
|
Specifies the input SWF file. FFmpeg's SWF demuxer reads the Flash container and identifies the available audio (and video) streams embedded within it. |
-c:a aac
|
Sets the audio codec to FFmpeg's built-in AAC encoder. This encodes the decoded SWF audio stream as AAC (Advanced Audio Coding), producing output compatible with iOS, Android, modern browsers, and iTunes without any additional plugins. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second, which is the standard default for AAC and provides a good balance of file size and audio quality for most SWF source material including music and voice narration. |
output.aac
|
Defines the output filename and format. The .aac extension tells FFmpeg to write a raw ADTS AAC stream — an audio-only file containing nothing but the re-encoded AAC audio extracted from the original SWF Flash file. |
Common Use Cases
- Recovering background music or sound effects from old Flash-based web games or animations for use in new projects
- Extracting narration or voiceover audio from legacy Flash e-learning modules to repurpose in modern HTML5 course formats
- Archiving the audio component of discontinued Flash multimedia presentations before Flash support is fully removed from all environments
- Pulling a jingle or branded audio asset out of an old SWF advertisement to reuse in a podcast or video production
- Converting Flash-based audiobook or spoken-word content into AAC for playback on iPhones, iPods, or iTunes-compatible players
- Extracting audio from SWF animations to create standalone audio files for accessibility purposes, such as screen-reader-friendly content
Frequently Asked Questions
Yes, there is some quality loss. SWF files most commonly store audio as MP3 (libmp3lame), so this conversion decodes that MP3 audio and re-encodes it as AAC — a lossy-to-lossy transcode. Each generation of lossy encoding introduces artifacts. At the default 128k bitrate, the quality loss is subtle and unlikely to be noticeable for speech or typical music, but if the original SWF audio was already at a low bitrate (e.g., 64k MP3), the output quality will reflect that source limitation.
You can raise the bitrate using the -b:a flag — for example, changing 128k to 192k or 256k — but this will not recover quality that was lost in the original SWF encoding. Since the source audio is already lossy MP3, the AAC encoder will have no additional detail to preserve at higher bitrates. A higher bitrate may still marginally reduce further encoding artifacts, but for most SWF source files, 128k AAC is a reasonable ceiling given the source quality.
All of that is discarded. FFmpeg extracts only the audio stream from the SWF container; the ActionScript code, vector animation data, embedded video, and any interactive elements are ignored entirely. The output .aac file is audio-only. If you need to preserve the visual component, you would need to first render the SWF to a video format before extracting audio.
Not all SWF files contain audio tracks. Some Flash files consist entirely of vector graphics and ActionScript with no embedded audio whatsoever. If FFmpeg cannot find an audio stream in the SWF, the conversion will either fail with a 'no audio stream' error or produce an empty output file. You can verify whether your SWF contains audio by running ffprobe on the file and checking for audio stream entries.
Modify the -b:a value in the command. For example, to encode at 192 kbps instead of 128 kbps, the command becomes: ffmpeg -i input.swf -c:a aac -b:a 192k output.aac. Available options typically range from 64k (low quality, small file) to 320k (high quality, larger file). For voice or narration extracted from e-learning SWF files, 96k is often sufficient, while 192k or higher is better suited to music-heavy Flash content.
AAC is technically more efficient than MP3 — it achieves comparable perceptual quality at lower bitrates, which is why it became the default audio format for iTunes, iOS, YouTube, and most streaming platforms. However, in this specific conversion scenario, the advantage is partially negated because you are starting from already-compressed MP3 audio. The main practical benefit of converting to AAC is compatibility: modern devices and browsers handle .aac files natively, whereas SWF playback requires legacy Flash support that is no longer available in most environments.
Technical Notes
SWF audio extraction has a few quirks worth understanding. FFmpeg's SWF demuxer can be inconsistent with certain Flash versions — particularly SWF files using older FLV1 video streams or complex ActionScript 3 structures — and may not reliably detect the audio stream in all cases. The audio in SWF files is most commonly stored as MP3 at bitrates between 32k and 128k, though some SWF files use AAC audio (especially those targeting Flash Player 9.0.115+). If the source audio is already AAC, FFmpeg will still re-encode it by default with this command; if you suspect the source is AAC and want to avoid re-encoding, you could attempt stream copying with -c:a copy, though container compatibility makes this unreliable for .aac output. Metadata (title, artist, album) is almost never present in SWF audio streams, so the output AAC file will typically have no embedded metadata tags. The output file uses the raw AAC (ADTS) format rather than being wrapped in an M4A container, which means it is broadly compatible but lacks the iTunes-style metadata container that .m4a provides.