Extract Audio from SWF to FLAC — Free Online Tool
Extract lossless audio from SWF (Shockwave Flash) files and save it as FLAC — preserving every detail of the original audio stream without any quality degradation. Ideal for recovering music, sound effects, or voiceovers embedded in legacy Flash animations and interactive content.
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 carry audio encoded with either MP3 (libmp3lame) or AAC — both lossy formats. This tool uses FFmpeg to demux the audio stream from the SWF container and re-encode it into FLAC, a lossless format. Because the source audio in SWF is already lossy, re-encoding to FLAC does not recover lost quality from the original compression — it simply preserves exactly what exists in the SWF with no further degradation. The video stream is discarded entirely using the -vn flag. The output FLAC file uses compression level 5 by default, which balances file size and encoding speed without affecting audio fidelity, since FLAC compression is always lossless regardless of level.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool, which handles all demuxing, decoding, encoding, and muxing operations in this conversion pipeline. |
-i input.swf
|
Specifies the input SWF file. FFmpeg's SWF demuxer parses the Flash container to locate and read the embedded audio stream (MP3 or AAC) and any video streams present. |
-vn
|
Disables video output entirely, discarding the FLV1 or MJPEG video stream found in the SWF. This is necessary because FLAC is a pure audio container and cannot hold video data. |
-c:a flac
|
Instructs FFmpeg to encode the extracted audio using the FLAC codec, re-encoding from the SWF's lossy MP3 or AAC stream into a losslessly compressed FLAC stream with no further quality loss. |
-compression_level 5
|
Sets the FLAC compression effort to level 5 (the format's default), balancing encoding speed and output file size. All compression levels from 0 to 8 produce bit-identical decoded audio — only the size of the .flac file and the time taken to encode it differ. |
output.flac
|
Defines the output filename and tells FFmpeg to wrap the encoded FLAC audio stream in a .flac container, which also supports Vorbis comment metadata and replay gain tags for modern audio player compatibility. |
Common Use Cases
- Recovering a music track or jingle embedded in a legacy Flash game or advertisement before the SWF becomes completely unplayable
- Archiving audio from old Flash-based e-learning courses or interactive presentations for use in modern training materials
- Extracting voiceover narration from an animated SWF explainer video to repurpose as a standalone audio file for accessibility or transcription
- Preserving sound effects libraries originally distributed as SWF files in a format playable by modern media software
- Pulling audio from a Flash-based music player or visualizer to archive a song in a losslessly compressed format before Flash support disappears entirely
- Extracting interview or podcast audio that was originally streamed or saved in SWF format for archival or re-editing purposes
Frequently Asked Questions
FLAC itself is lossless, meaning it introduces no additional quality loss during this conversion. However, SWF files store audio in lossy formats — typically MP3 or AAC — so any quality loss that occurred when the audio was originally encoded into the SWF is already baked in. The FLAC output will be a perfect, bit-exact copy of whatever audio data exists inside the SWF, but it cannot restore frequencies or detail that the original lossy encoding discarded.
SWF files store audio as compressed lossy streams (MP3 or AAC), which are very compact. FLAC, while lossless, stores a much more complete representation of the audio waveform, and even at maximum compression it will typically be several times larger than an equivalent MP3 stream. The size increase is expected and reflects the difference between lossy and lossless compression, not a problem with the conversion.
Adjust the value after -compression_level in the command. Valid values range from 0 (fastest encoding, largest file) to 8 (slowest encoding, smallest file). For example, use -compression_level 8 for maximum compression or -compression_level 0 for the fastest output. Critically, all levels produce identical audio quality — only encoding speed and file size are affected, since FLAC is always lossless.
Yes. On Linux or macOS, you can run a shell loop: for f in *.swf; do ffmpeg -i "$f" -vn -c:a flac -compression_level 5 "${f%.swf}.flac"; done. On Windows Command Prompt, use: for %f in (*.swf) do ffmpeg -i "%f" -vn -c:a flac -compression_level 5 "%~nf.flac". The browser-based tool processes one file at a time, so the FFmpeg command is especially useful for batch workflows.
FFmpeg will report an error indicating that no audio stream was found, and no output file will be created. Some SWF files are purely visual or interactive with no embedded audio — in that case there is nothing to extract. You can inspect a SWF file for audio streams by running ffmpeg -i input.swf without an output argument and checking the stream list in the output.
SWF files do not have a standardized audio metadata container the way formats like MP4 or MKV do, so embedded tags are rarely present and almost never transferred during extraction. Your FLAC output will typically have no ID3-style metadata. You can add tags manually after conversion using a tool like metaflac or any audio tag editor that supports FLAC's Vorbis comment metadata standard.
Technical Notes
SWF audio is most commonly MP3 (libmp3lame) at variable bitrates, though AAC is also used in later SWF versions. FFmpeg's SWF demuxer handles both cases and will correctly identify and extract whichever codec is present. The -vn flag is essential here because SWF video streams (FLV1 or MJPEG) are not relevant to audio extraction and would cause errors if FFmpeg attempted to encode them into a FLAC container, which supports no video. FLAC supports compression levels 0–8, all producing mathematically identical decoded audio; level 5 is the widely accepted default offering roughly 50–55% size reduction over uncompressed PCM for typical audio content. One known limitation: some older or malformed SWF files may use non-standard audio framing that causes FFmpeg's SWF demuxer to struggle with seeking or stream detection — if extraction fails, try adding -fflags +discardcorrupt to the command before the input flag. Also note that SWF does not support multiple audio tracks, so there is no need to specify a stream selector; FFmpeg will automatically extract the single available audio stream.