Convert SWF to M4A — Free Online Tool
Extract and convert the audio track from an SWF Flash file into a clean M4A file encoded with AAC — ideal for rescuing audio from legacy Flash animations, games, or interactive content. The conversion strips the FLV1 video and MP3 audio from the SWF container and re-encodes the audio as AAC inside an MPEG-4 container, producing a widely compatible file ready for iTunes, podcasts, or modern audio players.
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 are compound multimedia containers that bundle vector graphics, ActionScript bytecode, and media streams — typically FLV1-encoded video and MP3 (libmp3lame) audio — into a single Flash-specific package. FFmpeg demuxes the SWF, extracts the embedded audio stream (usually MP3), and transcodes it to AAC at 128k bitrate, then wraps the result in an MPEG-4 audio container (.m4a). The video stream is explicitly discarded with the -vn flag since M4A is an audio-only format. Because the source audio is MP3 and the target is AAC, this is a transcode — not a remux — meaning the audio is fully decoded and re-encoded, which introduces a small generation loss typical of lossy-to-lossy conversion.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool. In the browser version, this runs via FFmpeg.wasm — a WebAssembly port — so no files leave your device. On the desktop, this calls your locally installed FFmpeg binary. |
-i input.swf
|
Specifies the input SWF file. FFmpeg's SWF demuxer parses the Flash container to locate embedded media streams, typically an FLV1 video track and an MP3 or AAC audio track bundled inside the Flash package. |
-c:a aac
|
Sets the audio codec to AAC (Advanced Audio Coding), re-encoding the SWF's embedded MP3 audio into AAC format — the native and most compatible codec for the M4A container, widely supported by Apple devices, browsers, and streaming services. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second, a standard balance between file size and quality suitable for music and speech extracted from Flash content. Raise this to 192k or 256k if the source audio was high-quality and fidelity is a priority. |
-vn
|
Disables all video output streams. This is required here because M4A is an audio-only container — it cannot hold video — and without this flag FFmpeg might attempt to include the FLV1 video track from the SWF and fail or produce an incompatible file. |
output.m4a
|
Specifies the output file. The .m4a extension tells FFmpeg to wrap the encoded AAC audio in an MPEG-4 audio container, producing a file directly compatible with iTunes, Apple Music, QuickTime, and most modern audio players and mobile devices. |
Common Use Cases
- Recovering background music or sound effects from old Flash games that are no longer playable in modern browsers after Flash's end-of-life in 2020
- Extracting narration or voiceover audio from Flash-based e-learning modules to repurpose in a podcast or modern LMS platform
- Pulling theme songs or jingles from archived Flash animations (e.g., Newgrounds-era cartoons) to add to a music library in iTunes or Apple Music
- Converting audio from Flash-based interactive product demos or presentations to use in video editing software that doesn't support SWF input
- Archiving the audio component of legacy Flash web advertisements or kiosks before the SWF files become completely inaccessible
- Extracting looping ambient audio tracks from Flash games to use as background music in new projects
Frequently Asked Questions
Yes, there is a small quality loss because this is a lossy-to-lossy transcode. The audio inside most SWF files is already MP3-compressed, and re-encoding it to AAC at 128k introduces a second generation of lossy compression. In practice, at 128k AAC the result is typically transparent or near-transparent for speech and most music, but if preserving maximum fidelity matters, you can raise the output bitrate to 192k or 256k by editing the -b:a flag in the FFmpeg command.
All visual content — including the FLV1-encoded video stream, vector graphics, and ActionScript interactivity — is completely discarded. The -vn flag in the FFmpeg command explicitly tells FFmpeg to exclude all video streams, since M4A is a strictly audio-only container. Only the embedded audio track survives the conversion.
No. If the SWF contains only vector animations or ActionScript with no embedded audio stream, FFmpeg will error out or produce an empty file because there is no audio to extract. SWF files that rely on externally loaded audio (loaded at runtime via ActionScript from separate MP3 URLs) will also produce no output, since that audio was never embedded in the SWF file itself.
Adjust the value after -b:a to change the output AAC bitrate. For example, replace '128k' with '192k' for better quality or '96k' for a smaller file. For spoken-word content, 96k AAC is generally sufficient, while music benefits from 192k or higher. The M4A/AAC format supports up to 320k bitrate in this tool. Simply edit the command shown on this page and run it locally if your file exceeds 1GB.
The browser-based tool processes one file at a time, but the displayed FFmpeg command can be adapted for batch processing on your desktop. On Linux or macOS you can run: for f in *.swf; do ffmpeg -i "$f" -c:a aac -b:a 128k -vn "${f%.swf}.m4a"; done. On Windows Command Prompt: for %f in (*.swf) do ffmpeg -i "%f" -c:a aac -b:a 128k -vn "%~nf.m4a".
The M4A container fully supports iTunes-style metadata tags (title, artist, album, artwork, etc.), but SWF files do not carry standard audio metadata, so the output file will have no embedded tags. You will need to add metadata manually after conversion using a tool like MusicBrainz Picard, iTunes, or by appending FFmpeg -metadata flags to the command, for example: -metadata title="My Track" -metadata artist="Artist Name".
Technical Notes
SWF files were never designed as audio archives — the audio stream is typically embedded as raw MP3 data (sampled at 44.1kHz or 22.05kHz depending on the Flash authoring settings) or occasionally as AAC inside newer SWF versions. FFmpeg's SWF demuxer handles both cases but can sometimes struggle with malformed or heavily obfuscated SWF files generated by certain Flash authoring tools. If FFmpeg cannot parse the SWF structure, the conversion will fail regardless of browser or desktop usage. The output M4A uses the AAC-LC (Low Complexity) profile by default, which is universally compatible with Apple devices, Android, web browsers, and streaming platforms. M4A technically supports chapters (an advantage over plain MP3), but since SWF carries no chapter metadata, this feature is irrelevant in this conversion. One notable limitation: SWF files that stream audio via ActionScript's NetStream or Sound.load() rather than embedding it directly will yield no audio output, as only embedded streams are accessible to the demuxer.