Extract Audio from SWF to MP3 — Free Online Tool
Extract the audio track from SWF Flash files and save it as an MP3, using FFmpeg to decode the embedded MP3 or AAC audio stream and re-encode it with the LAME encoder. Ideal for recovering music, sound effects, or voiceovers from legacy Flash animations and games.
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 can contain audio encoded as MP3 (libmp3lame) or AAC, embedded alongside ActionScript logic, vector graphics, and video streams. During this conversion, FFmpeg demuxes the SWF container, discards all video, animation, and interactivity data entirely, and extracts only the audio stream. That audio is then re-encoded using the LAME MP3 encoder at 128k bitrate by default. Note that if the original SWF audio was already MP3, this re-encoding step introduces a small additional generation of lossy compression — it is not a lossless copy-through, because SWF's internal MP3 framing is not directly stream-copied into an MP3 container by FFmpeg without explicit handling.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles demuxing the SWF container, decoding its internal audio stream (MP3 or AAC), and re-encoding it as MP3 output. |
-i input.swf
|
Specifies the input SWF file. FFmpeg will parse the Flash container to locate the embedded audio stream, which may be MP3 or AAC depending on how the SWF was authored. |
-vn
|
Disables video output entirely, telling FFmpeg to ignore all visual streams in the SWF — including FLV1-encoded video, MJPEG frames, and vector animation data — so only the audio stream is processed. |
-c:a libmp3lame
|
Uses the LAME MP3 encoder to re-encode the SWF's audio stream into standard MP3 format, which is universally compatible with browsers, media players, phones, and editing software. |
-b:a 128k
|
Sets the output MP3 bitrate to 128 kilobits per second, a common balance between file size and audio quality. Since SWF files were often authored at 128k or lower, this matches typical source quality without unnecessary file size increase. |
output.mp3
|
Defines the output filename and container. The .mp3 extension tells FFmpeg to write a standard MPEG Audio Layer III file, compatible with virtually all devices and platforms. |
Common Use Cases
- Recovering background music or soundtracks embedded in old Flash games that are no longer playable after Adobe discontinued Flash Player
- Extracting voiceover narration from a legacy Flash-based e-learning module to repurpose it in a modern training video
- Pulling sound effects from an animated SWF advertisement to reuse them in a new production
- Archiving audio from Flash animations before the SWF files become completely inaccessible on modern systems
- Extracting a band's or artist's music from an old Flash music player widget embedded on a website
- Isolating audio from a Flash-based video intro or bumper to reuse as a podcast intro or jingle
Frequently Asked Questions
Yes, there will be a small degree of additional quality loss. SWF files commonly store audio as MP3 internally, but FFmpeg re-encodes the audio rather than performing a direct stream copy into the MP3 container. This means the audio undergoes one additional encode-decode cycle, which introduces a second generation of lossy compression artifacts. To minimize this, you can increase the output bitrate to 192k or 256k in the FFmpeg command using -b:a 256k.
Replace the -b:a 128k value with your desired bitrate. For example, use -b:a 320k for the highest standard MP3 quality, or -b:a 64k for a smaller file with lower fidelity. Since SWF audio was typically authored at 128k or lower, going above the original source quality will not recover detail that was already lost — but it can reduce the impact of the second encode. The command would look like: ffmpeg -i input.swf -vn -c:a libmp3lame -b:a 192k output.mp3
Some SWF files stream audio in small event-triggered chunks tied to ActionScript timeline events rather than storing a single continuous audio track. FFmpeg may only capture part of the audio or miss event-based sounds entirely because it cannot execute Flash's ActionScript logic. If your output is truncated or empty, the SWF likely relies on scripted audio playback, and a full Flash runtime would be needed to capture it via screen recording instead.
Yes. FFmpeg will automatically detect whether the SWF's audio stream is MP3 (libmp3lame) or AAC and decode it accordingly before re-encoding to MP3. The same ffmpeg -i input.swf -vn -c:a libmp3lame -b:a 128k output.mp3 command handles both cases without any changes on your part.
SWF files do not store standard audio metadata like ID3 tags — any title, artist, or album information was typically managed by the surrounding HTML page or ActionScript variables, not embedded in the file itself. As a result, the output MP3 will not contain any meaningful ID3 metadata, and you will need to tag it manually using a tool like MP3Tag or iTunes after conversion.
Yes, on the command line you can use a shell loop to process multiple files. On Linux or macOS, run: for f in *.swf; do ffmpeg -i "$f" -vn -c:a libmp3lame -b:a 128k "${f%.swf}.mp3"; done — this iterates over every SWF in the current directory and outputs a corresponding MP3 with the same base filename. On Windows Command Prompt, use: for %f in (*.swf) do ffmpeg -i "%f" -vn -c:a libmp3lame -b:a 128k "%~nf.mp3"
Technical Notes
SWF (Small Web Format) is a binary container format designed for the Flash runtime, and its audio support is limited to MP3 and AAC streams — both lossy formats. This means any audio extracted from a SWF has already undergone at least one round of lossy compression before you receive it, and the FFmpeg re-encode to MP3 adds a second. There is no way to recover lossless audio from a SWF, as the format does not support uncompressed or losslessly compressed audio. The -vn flag is essential here because without it FFmpeg would attempt to process the video/animation streams as well, which often causes errors or unexpected output since SWF's FLV1 video codec handling can be unpredictable in this context. SWF files also do not expose standard chapter markers, subtitle tracks, or multiple audio tracks in a way FFmpeg can enumerate, so this is strictly a single-stream audio extraction. Be aware that some SWF files are protected or encrypted, and FFmpeg will fail to demux these — there is no workaround for DRM-protected Flash content.