Convert SWF to OGA — Free Online Tool
Extract and convert audio from SWF Flash files into OGA (Ogg Vorbis) format — a free, open audio container ideal for web streaming and archival. This tool strips the video and interactive layers from the SWF, decodes the embedded MP3 or AAC audio stream, and re-encodes it as Vorbis inside an Ogg container, all processed locally in your browser.
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 embed audio as MP3 (using the FLV1/libmp3lame codec pipeline) or AAC streams, bundled alongside vector animations and interactive ActionScript content. During this conversion, FFmpeg demuxes the SWF container, discards all video, animation, and scripting data entirely, and decodes the raw audio stream. That decoded audio is then re-encoded using the libvorbis encoder and wrapped in an Ogg container with a .oga extension — the audio-only variant of Ogg preferred by audio players and web standards. Because the source MP3 or AAC audio must be decoded and re-encoded into Vorbis, this is a transcode (not a remux), which means some generation loss occurs, but the default quality setting (-q:a 4) targets a perceptually transparent result for most content.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles all demuxing, decoding, encoding, and muxing. In the browser version, this runs via FFmpeg.wasm compiled to WebAssembly — no server involved. |
-i input.swf
|
Specifies the input SWF file. FFmpeg's SWF demuxer parses the Flash binary structure, decompresses the body if needed (zlib/LZMA), and locates the embedded audio stream tags (DEFINESTREAMSOUND blocks or DEFINESOUND tags) to extract for decoding. |
-c:a libvorbis
|
Selects the libvorbis encoder to produce Vorbis audio — the royalty-free, patent-unencumbered codec that is the standard audio codec for the OGA/Ogg container. The SWF's decoded MP3 or AAC audio is re-encoded into Vorbis using this encoder. |
-q:a 4
|
Sets the Vorbis variable bitrate quality level to 4 on a 0–10 scale, targeting approximately 128 kbps — a good balance between file size and audio fidelity for typical SWF audio content like music loops, narration, and sound effects. |
output.oga
|
Defines the output filename with the .oga extension, which signals an Ogg container holding audio-only content. FFmpeg selects the Ogg muxer automatically based on this extension, wrapping the encoded Vorbis stream in a valid OGA file. |
Common Use Cases
- Recovering background music or sound effects embedded in legacy Flash animations from the early 2000s web era, before SWF playback is lost entirely as Flash support disappears
- Extracting narration or voiceover audio from SWF-based e-learning modules or interactive presentations to repurpose as standalone audio lessons
- Archiving audio from Flash games — including theme music or sound clips — into an open, patent-free format that will remain playable without proprietary software
- Converting SWF audio content to OGA for use in open-source web projects or Firefox-based applications that prefer the royalty-free Ogg Vorbis format over MP3
- Pulling audio from SWF advertising or promo animations to audit voiceover content or reuse approved audio assets in new projects
- Preparing Flash-sourced audio for upload to platforms like Wikipedia or Wikimedia Commons, which require open formats like OGA/Vorbis
Frequently Asked Questions
Yes, some quality loss is inevitable because this is a transcode between two lossy formats. The audio in most SWF files is already compressed as MP3 or AAC, and re-encoding it into Vorbis is a second lossy generation. At the default -q:a 4 setting (roughly 128 kbps variable bitrate), the loss is generally imperceptible for speech and background music, but audiophiles or mastering workflows should be aware of the generational compression. If the SWF happened to embed AAC at high bitrate, consider using -q:a 6 or higher to minimize artifacts.
All of it is discarded. FFmpeg reads the SWF container and extracts only the audio stream; the ActionScript code, vector shape data, timeline animations, and any embedded video frames are completely ignored and do not appear in the output. The resulting OGA file is audio-only — there is no way to preserve Flash interactivity in an audio container.
Adjust the -q:a value, which controls Vorbis variable bitrate quality on a scale from 0 (lowest, ~64 kbps) to 10 (highest, ~500 kbps). The default is 4, which targets approximately 128 kbps. To improve quality, try -q:a 6 or -q:a 8. To reduce file size for voice-only content, -q:a 2 is often sufficient. For example: ffmpeg -i input.swf -c:a libvorbis -q:a 6 output.oga
Yes. OGA supports multiple codecs including FLAC (lossless) and Opus (modern lossy). To use FLAC, replace '-c:a libvorbis -q:a 4' with '-c:a flac', which will produce a lossless encode of the decoded SWF audio — though note the source audio was already lossy, so FLAC will not recover quality lost during the original SWF encoding. For Opus, use '-c:a libopus -b:a 128k'. Vorbis is the default because it has the broadest compatibility with OGA players.
Some SWF files contain only vector animations driven by ActionScript with no embedded audio stream at all — in these cases FFmpeg will find nothing to extract and may produce an empty or invalid output file. Other SWFs use event-based audio triggered dynamically at runtime, which FFmpeg cannot capture from the static file. You can check whether your SWF contains an audio stream by running 'ffprobe input.swf' before converting; if no audio stream appears in the output, the file has no extractable audio.
Yes, using a shell loop on your local machine with the displayed command. On Linux or macOS: 'for f in *.swf; do ffmpeg -i "$f" -c:a libvorbis -q:a 4 "${f%.swf}.oga"; done'. On Windows Command Prompt: 'for %f in (*.swf) do ffmpeg -i "%f" -c:a libvorbis -q:a 4 "%~nf.oga"'. The browser-based tool processes one file at a time, so the FFmpeg command shown on this page is especially valuable for bulk archival of large SWF collections.
Technical Notes
SWF files are not straightforward media containers — they are structured Flash bytecode bundles where audio is stored in DEFINESTREAMSOUND or DEFINESOUND tags, typically encoded as MP3 at 44.1 kHz or 22.05 kHz (reflecting Flash's historical preference for halved sample rates). FFmpeg's SWF demuxer handles the most common cases but may struggle with heavily obfuscated or compressed SWF files (SWF supports zlib and LZMA body compression, which FFmpeg does decompress automatically). The output OGA container is the audio-designated sibling of OGG and is formally recognized by the IANA with its own MIME type (audio/ogg). Vorbis metadata tags (equivalents of ID3 tags) are supported in OGA, but FFmpeg will not automatically transfer SWF-embedded title or artist information since SWF stores metadata differently — you may want to add tags manually using -metadata title="..." in the command. One notable limitation: if the SWF embeds audio at 8 kHz or 11 kHz (common in very old or low-bandwidth Flash content), Vorbis encoding at those sample rates is technically supported but some players may resample to 44.1 kHz on playback.