Convert SWF to WEBA — Free Online Tool
Extract and convert the audio track from a SWF Flash file into a WEBA file encoded with the Opus codec — ideal for salvaging audio from legacy Flash animations or interactive content. Opus delivers excellent quality at low bitrates, making WEBA a compact, web-optimized alternative to the MP3 audio typically embedded in SWF files.
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 commonly carry audio encoded as MP3 (via libmp3lame) or AAC, embedded alongside Flash vector graphics or FLV1 video streams. During this conversion, FFmpeg demuxes the SWF container to extract the raw audio stream, then re-encodes it from its original MP3 or AAC format into Opus audio at 128k bitrate, and packages it into a WEBA (audio-only WebM) container. The video and interactive content inside the SWF are discarded entirely — the -vn flag enforces this. Because SWF audio is typically lossy MP3 and Opus is also lossy, this is a generation-loss transcode, so the output quality is bounded by the original SWF audio quality.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool, which handles all demuxing, decoding, encoding, and muxing steps needed to convert the SWF file's audio into a WEBA output. |
-i input.swf
|
Specifies the input SWF (Small Web Format) file. FFmpeg's SWF demuxer reads the Flash container and identifies available streams — typically an FLV1 or MJPEG video stream and an MP3 or AAC audio stream. |
-c:a libopus
|
Sets the audio encoder to libopus, which transcodes the SWF's embedded MP3 or AAC audio into the modern Opus format — the default and recommended codec for WEBA files due to its superior compression efficiency. |
-b:a 128k
|
Sets the Opus audio bitrate to 128 kilobits per second, which provides good perceptual quality. Because Opus is very efficient, 128k is generally more than sufficient to preserve the audio fidelity of typical SWF audio tracks. |
-vn
|
Disables video output, stripping the Flash animation, FLV1 video, or any visual streams from the SWF entirely. This is required because WEBA is an audio-only format and cannot contain video streams. |
output.weba
|
Defines the output file. The .weba extension signals FFmpeg to use the WebM muxer in audio-only mode, producing a WEBA file containing the Opus-encoded audio extracted from the SWF. |
Common Use Cases
- Salvaging background music or sound effects from old Flash games or animations for use in modern web projects
- Extracting voiceover narration from legacy SWF e-learning modules to repurpose in non-Flash formats
- Archiving audio from Flash-based interactive multimedia before the content becomes completely inaccessible due to Flash end-of-life
- Converting SWF soundtrack audio to Opus/WEBA for use in a WebM-based HTML5 web application where Flash is no longer supported
- Pulling jingle or intro audio out of an old Flash banner advertisement to reuse in a modern campaign
- Creating a small, low-bitrate audio file from a SWF presentation's narration track to serve via a streaming web player
Frequently Asked Questions
Yes, some quality loss is inevitable. The audio inside a SWF is typically already MP3-compressed (lossy), and re-encoding it to Opus introduces a second generation of lossy compression. That said, Opus is a highly efficient modern codec, and at 128k it often sounds comparable to MP3 at higher bitrates. To minimize quality loss, avoid lowering the bitrate below the original SWF audio bitrate.
WEBA is a strictly audio-only container format (a WebM variant), so it cannot carry video or interactive content. The -vn flag in the FFmpeg command explicitly drops all video streams from the SWF. Flash vector graphics, ActionScript interactivity, and any embedded FLV1 video are all discarded — only the audio track is extracted and encoded into the output file.
If the SWF contains no audio stream, FFmpeg will throw an error along the lines of 'Output file does not contain any stream' and no WEBA file will be produced. Many simple Flash animations rely entirely on visual elements with no embedded sound. You can check whether a SWF has audio by running ffprobe on the file before attempting the conversion.
Opus in a WebM/WEBA container is supported natively in Chrome, Firefox, and Edge. Safari added Opus support in version 15.4 (released 2022), so modern Safari versions handle it correctly. If you need maximum compatibility across older environments, you may want to consider converting to an MP3 or AAC output format instead.
Replace the value after -b:a with your desired bitrate. For example, use -b:a 64k for a smaller file with lower quality, or -b:a 192k for higher fidelity. Opus is notably efficient at low bitrates — 64k Opus often sounds better than 128k MP3 — so you can frequently go lower than you would with other codecs without a noticeable quality drop.
Yes. Replace -c:a libopus with -c:a libvorbis in the command. Both codecs produce valid WEBA (audio WebM) files. However, Opus is generally preferred because it outperforms Vorbis at equivalent bitrates, has lower latency, and is the more modern standard. Vorbis is considered legacy in the WebM ecosystem, though it still has broad player support.
Technical Notes
SWF files are a legacy Adobe Flash container that typically encodes audio as MP3 using libmp3lame, though some SWF files embed AAC audio instead. FFmpeg's SWF demuxer can handle both, though heavily obfuscated or ActionScript-heavy SWF files may cause parsing issues. The WEBA container is essentially WebM restricted to audio-only streams, governed by the same Matroska-derived container spec. Opus, the default codec here, is defined by RFC 6716 and supports bitrates from 6k to 510k — far wider than the options used in this tool. One notable limitation: SWF files do not carry standard metadata tags in a way FFmpeg can reliably map to Opus comment headers, so title, artist, and album metadata are unlikely to transfer to the output WEBA file and will need to be added manually. Additionally, if a SWF embeds multiple audio events as separate streams (common in interactive Flash content), FFmpeg may only extract the first audio stream it encounters.