Convert SWF to FLAC — Free Online Tool
Extract and convert the audio track from a SWF (Shockwave Flash) file into a high-quality FLAC archive using the lossless FLAC codec. Because SWF files typically carry MP3 audio encoded with libmp3lame, this tool re-encodes that lossy stream into a losslessly compressed FLAC file — ideal for preserving as much of the original audio fidelity as the source allows.
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 Flash containers that bundle vector graphics, animation, and compressed audio — most commonly MP3 audio encoded with the libmp3lame codec. During this conversion, FFmpeg demuxes the SWF container to extract the audio stream, discards all video and interactive content (since FLAC is a pure audio format), and re-encodes the audio using the FLAC codec at compression level 5. FLAC compression is mathematically lossless — meaning no audio data is discarded during encoding — but because the source audio in the SWF was already encoded as lossy MP3, the output FLAC represents the highest-fidelity version of that already-compressed audio, not a reconstruction of the original pre-MP3 recording. The result is a larger file than the original MP3 inside the SWF, but one that will not degrade further through future re-encoding cycles.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — the open-source multimedia processing engine that powers this conversion both in the browser (via FFmpeg.wasm) and on the desktop command line. |
-i input.swf
|
Specifies the input file as a SWF (Shockwave Flash) container. FFmpeg's SWF demuxer reads the binary Flash format and identifies the embedded audio stream — typically an MP3 track — for extraction. |
-c:a flac
|
Sets the audio codec to FLAC (Free Lossless Audio Codec), instructing FFmpeg to re-encode the extracted MP3 audio from the SWF into a lossless FLAC stream. No video codec is specified because FLAC is an audio-only format and all SWF visual content is automatically dropped. |
-compression_level 5
|
Sets the FLAC encoder's compression effort to level 5 on a scale of 0–8. This controls how aggressively the encoder searches for redundancy to reduce file size; level 5 is the recommended default that balances encoding speed and output file size without affecting audio quality, which remains lossless at every level. |
output.flac
|
Defines the output filename and tells FFmpeg to write a FLAC container file. The .flac extension signals the muxer to wrap the encoded lossless audio stream in the standard FLAC file format, compatible with all FLAC-aware players and software. |
Common Use Cases
- Archiving audio from Flash-era games or animations before SWF content becomes completely inaccessible in modern browsers, preserving the audio in a durable, open-format container
- Extracting background music or sound effects from old Flash interactive presentations or e-learning modules for reuse in modern projects
- Pulling voice-over narration from legacy SWF-based training content to re-import into modern video editing or e-learning authoring tools that accept FLAC
- Recovering audio from Flash animations created with tools like Adobe Animate or older versions of Flash Professional when the original project source files have been lost
- Preparing SWF audio for storage in a lossless archive as part of a digital preservation workflow, ensuring no further quality degradation occurs in the stored master
- Extracting looping music tracks from Flash games to use as reference audio or to upload to music libraries that require lossless source files
Frequently Asked Questions
No — FLAC is a lossless codec, meaning it preserves exactly what it receives without adding further compression artifacts, but it cannot restore quality that was lost when the audio was originally encoded as MP3 inside the SWF. The FLAC file will sound identical to the MP3 audio extracted from the SWF, neither better nor worse. The main benefit is that the FLAC file will not degrade any further if you need to re-edit or re-encode it later.
FLAC stores audio in a lossless compressed form, which is inherently larger than the lossy MP3 audio packed inside the SWF. Additionally, the SWF file contains only the audio stream (plus vector graphics and code that are discarded), while FLAC wraps the full decoded PCM audio data in its lossless container. Depending on the bit rate and length of the original MP3 audio, the FLAC output can be several times larger — this is expected and is the trade-off for lossless archival quality.
SWF files rarely contain standard audio metadata tags in the way that formats like MP3 or OGG do, so there is typically little or no metadata to carry over. FLAC does support rich Vorbis comment metadata tags (artist, title, album, etc.), but FFmpeg will only transfer what it can read from the SWF source. You will likely need to add metadata to the output FLAC manually using a tag editor like MusicBrainz Picard or beets after conversion.
All visual content — including vector animations, ActionScript interactivity, embedded video frames, and graphics — is completely discarded. FLAC is a purely audio format with no support for video or visual data, so FFmpeg automatically selects only the audio stream for output. If you need to preserve the visual content of a SWF file, you would need to convert it to a video format like MP4 or WebM instead.
The compression level is controlled by the -compression_level flag, which accepts values from 0 to 8. Level 0 encodes the fastest with the least compression (larger file, faster), while level 8 produces the smallest possible FLAC file at the cost of significantly longer encoding time. The default used here is level 5, which is a well-balanced midpoint recommended for most use cases. For example, to use maximum compression you would run: ffmpeg -i input.swf -c:a flac -compression_level 8 output.flac. Importantly, all levels are fully lossless — compression level only affects file size and encoding speed, never audio quality.
The single-file command shown on this page must be run once per file, but you can easily wrap it in a shell loop to process many files at once. On Linux or macOS, use: for f in *.swf; do ffmpeg -i "$f" -c:a flac -compression_level 5 "${f%.swf}.flac"; done. On Windows Command Prompt, use: for %f in (*.swf) do ffmpeg -i "%f" -c:a flac -compression_level 5 "%~nf.flac". This will convert every SWF in the current directory to a separate FLAC file with the same base filename.
Technical Notes
SWF files use a proprietary binary container format originally developed by Macromedia and later maintained by Adobe. The audio inside a SWF is almost always MP3 (encoded via libmp3lame) or, less commonly, AAC. FFmpeg's SWF demuxer is capable of extracting these audio streams, but support can be inconsistent with heavily obfuscated or ActionScript 3-heavy SWFs, particularly those that load assets dynamically at runtime — in such cases FFmpeg may report no audio stream found, because the audio isn't embedded directly in the SWF container. FLAC's -compression_level parameter controls the entropy coding and block size strategies used during encoding; all levels produce bit-for-bit identical decoded PCM output, so changing the level has zero effect on perceived audio quality. FLAC files produced by this conversion will be fully compatible with all major media players including VLC, foobar2000, Apple Music, and most DAWs. One known limitation: if the SWF contains multiple separate audio streams (e.g., background music and sound effects as separate assets), FFmpeg will typically extract only the first detected audio stream; there is no straightforward way to demux all audio assets from a SWF into separate FLAC files without deeper SWF-aware tooling.