Initializing... drag & drop files here
Supports: SWF
Pull the soundtrack, voice-over or sound effect out of an old Flash .swf file and save it as AAC — the codec that plays on iPhone, Android, browsers and consoles without a Flash plugin. The visuals are discarded; only the embedded sound stream is kept. Before you upload, read the next section: what comes out depends entirely on how the sound was stored inside the file, and two of the four cases surprise people.
Each row below was reproduced on a purpose-built .swf of that exact kind.
| What is inside the .swf | Extracts? | What you get |
|---|---|---|
Streamed audio (SoundStreamHead / SoundStreamBlock) |
Yes | The full timeline soundtrack — the ideal case |
One event sound (DefineSound + StartSound) |
Yes | That single sound, at its own length and sample rate |
| Several event sounds | Partly | Each surfaces as a separate stream and only the first reaches the output |
| Sound built by ActionScript, or loaded from a separate file or URL | No | Nothing — that audio was never inside the .swf |
| Video but no audio at all | No | Hard failure: "Output file does not contain any stream" |
| Vector animation with no embedded media | No | Fails at input: "could not find codec parameters" / "End of file" |
The third row is the one that catches people out. A test file carrying three half-second event sounds probes as three independent audio streams, and default stream selection takes exactly one of them — so 1.5 seconds of embedded audio came out as a 0.5-second AAC. A Flash game with forty sound effects yields one effect, not a soundtrack. If the original shipped as game.swf alongside a loose music.mp3 in the same folder, that companion MP3 is the track you actually want.
.swf file or click "+ Add Files" to select it. Several files can be queued and extracted in one batch.| Property | SWF (source) | AAC (output) |
|---|---|---|
| Type | Interactive Flash container: vector art, bitmaps, ActionScript and media | Audio-only elementary stream |
| Embedded audio codecs | MP3, Flash ADPCM, Nellymoser, Speex, uncompressed PCM | AAC-LC |
| Compression | Lossy in most cases; PCM entries are uncompressed | Lossy |
| Standard | Adobe proprietary, no longer maintained | ISO/IEC 13818-7 (MPEG-2 Part 7) and ISO/IEC 14496-3 (MPEG-4 Part 3) |
| Sample rates | 5512 / 11025 / 22050 / 44100 Hz; Nellymoser also 8 and 16 kHz | 8 kHz to 96 kHz |
| Plays natively today | No — Flash Player has blocked Flash content since 12 January 2021 | Yes — iOS, Android, Windows, macOS, Chrome, Firefox, Edge, Safari |
| What you keep | The whole interactive movie | One embedded sound stream; everything visual is discarded |
DefineSound is its own stream and only one is selected, so a file full of short cues yields a single cue. There is no setting here that merges them..swf; the click is genuinely all the file embeds.Yes. Adobe ended Flash Player support on 31 December 2020 and began blocking Flash content from running on 12 January 2021, but that killed playback, not the data. A .swf is a container, and embedded sound lives in its DefineSound and SoundStreamHead / SoundStreamBlock tags. Those tags are read directly from the file, so no Flash runtime is involved at any point.
Two different causes, and they need different responses. If the file stores several event sounds, each one appears as a separate stream and only the first is written to the output — a three-sound test file produced 0.5 seconds out of 1.5. If instead the file triggers sounds from ActionScript or streams its music from a separate URL, none of that audio is inside the .swf at all and there is nothing to recover. Check whether the original shipped with a companion .mp3 next to it.
No on both counts. Almost all SWF audio is already lossy — streamed music is usually MP3, and older or voice-based files use Flash ADPCM or the Nellymoser speech codec — so this is a lossy-to-lossy transcode. Set your AAC bitrate at or just above the source to avoid stacking a second round of loss. AAC generally sounds better than MP3 at the same bitrate, with the gap widest below 128 kbps and effectively closed by 256 kbps, but it can only preserve what the SWF already held; nothing can restore detail the original encode discarded.
Match the source. Speech, cartoon dialogue and Nellymoser-encoded material rarely justify more than 96-128 kbps; a music bed that was stored as a 192 kbps MP3 wants 192 kbps. The Constant Bitrate list runs from 8 to 384 kbps, and Custom Bitrate lets you type a figure directly if you know exactly what the source was. Going well above the source rate makes the file bigger without adding anything.
Only if the source is genuinely mono. A lot of Flash audio is — Nellymoser is a mono speech codec, and event sounds are frequently mono to save space in the .swf. Forcing Mono under "Audio Channel" on that kind of material roughly halves the file for no audible loss. Forcing a genuinely stereo music bed to mono will collapse the image, so leave it on Original when in doubt.
.aac file I get a container or a raw stream?A raw ADTS elementary stream, which is what the .aac extension normally means. Most players and phones handle it, but some software — iTunes and a few editors in particular — expects an MP4-family container instead. If yours objects, run the same SWF through SWF to M4A to get the same AAC audio inside an MP4 container, or SWF to MP3 for maximum legacy compatibility.
Extract first, trim second. Convert to AAC, then open the result in our Audio Cutter and set the exact start and end you want. Targeting a timestamp during extraction is unreliable on a .swf, because the Flash timeline does not map cleanly onto media timestamps and the demuxer cannot seek into the file. If the finished AAC is bigger than you would like, Compress AAC will shrink it.
This page keeps audio only and discards the visuals. To preserve the moving picture, use SWF to MP4, which renders the embedded video stream plus its soundtrack into H.264. The same limitation applies there, though: only files that actually embed a video stream can be converted. A vector animation or a Flash game has no video to extract, and the Ruffle emulator plus a screen recording is the only route for those.