Convert SWF to AMR — Free Online Tool

Extract and convert audio from SWF Flash files into AMR format, encoding speech with the libopencore_amrnb codec at 12,200 bps — the standard Adaptive Multi-Rate narrowband bitrate used in mobile telephony. Ideal for pulling voice narration or dialogue from legacy Flash content and repurposing it for mobile or telephony systems.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

SWF files typically contain audio encoded as MP3 (via libmp3lame) or AAC, embedded alongside Flash vector graphics and interactive content. During this conversion, FFmpeg demuxes the SWF container to extract the raw audio stream, then decodes it and re-encodes it using the libopencore_amrnb encoder into the AMR-NB (Adaptive Multi-Rate Narrowband) format. The video, vector graphics, and interactive elements are all discarded — AMR is a pure audio-only format. AMR-NB is optimized specifically for speech at a narrow frequency range (200–3400 Hz), so musical scores or sound effects from Flash will sound degraded, but voice narration will remain intelligible. The output is a .amr file at 12,200 bps, the highest standard AMR-NB bitrate.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg multimedia processing tool, which handles demuxing the SWF container, decoding the embedded Flash audio, and re-encoding it into AMR format.
-i input.swf Specifies the input SWF file. FFmpeg will parse the Flash container to locate any embedded audio streams (typically MP3 or AAC) while ignoring the vector graphics, ActionScript, and interactive elements.
-c:a libopencore_amrnb Selects the libopencore_amrnb encoder to produce AMR Narrowband audio — the codec used in GSM mobile telephony and optimized for speech intelligibility at very low bitrates.
-b:a 12200 Sets the AMR-NB bitrate to 12,200 bps (Mode 7 / MR122), the highest quality mode in the AMR-NB standard, offering the best speech clarity the narrowband codec can provide.
output.amr Defines the output file as a .amr file, which is the standard container for both AMR-NB and AMR-WB audio, widely recognized by mobile devices, 3GP-compatible players, and telephony infrastructure.

Common Use Cases

  • Extracting voice-over narration from legacy Flash e-learning modules to repurpose in telephony IVR (Interactive Voice Response) systems that require AMR audio
  • Recovering spoken dialogue from archived Flash animations or interactive presentations for use in mobile apps that consume AMR audio natively
  • Converting speech recordings embedded in old SWF-based language-learning software into AMR files for playback on feature phones or low-bandwidth mobile platforms
  • Pulling audio from Flash-based audio tours or kiosk presentations to store as AMR for integration into mobile telephony or VoIP workflows
  • Archiving voice content from SWF files in AMR format as a compact, speech-optimized representation before the original Flash content becomes entirely inaccessible
  • Preparing narration tracks from Flash training simulations for submission to telecommunications systems that only accept AMR-encoded audio

Frequently Asked Questions

No — AMR-NB is specifically engineered for human speech in the 200–3400 Hz frequency range, which means music, sound effects, and anything with significant bass or high-frequency content will sound noticeably thin and degraded. The codec uses perceptual techniques tuned for voice, not broadband audio. If your SWF contains music, consider converting to a general-purpose audio format like MP3 or AAC instead of AMR.
AMR-NB defines eight standardized bitrate modes: 4750, 5150, 5900, 6700, 7400, 7950, 10200, and 12200 bps. This tool uses 12,200 bps (also called Mode 7 or MR122), which is the highest quality AMR-NB mode and delivers the most intelligible speech. If you need a smaller file for very constrained bandwidth, you can modify the FFmpeg command to use a lower rate like 7950 or 5900, though voice clarity will decrease.
Yes — if the SWF file contains no embedded audio track, FFmpeg will fail or produce an empty output file because AMR is an audio-only format with nothing to encode. SWF files can contain purely visual or interactive content with no sound. If you're unsure whether your SWF has audio, running FFmpeg with the -i flag alone (without an output file) will display the stream information, including whether any audio stream is detected.
Replace the value after -b:a with any of the eight valid AMR-NB bitrates: 4750, 5150, 5900, 6700, 7400, 7950, 10200, or 12200 (in bps, not kbps). For example, to use the mid-range 7950 bps mode, the command would be: ffmpeg -i input.swf -c:a libopencore_amrnb -b:a 7950 output.amr. Note that AMR-NB only accepts these exact standard values — specifying an arbitrary number like 10000 will cause FFmpeg to snap to the nearest valid mode or throw an error depending on your build.
Yes — AMR-WB (Wideband) covers a broader frequency range (50–7000 Hz) and supports higher bitrates up to 23,850 bps, making it noticeably better for speech quality. To use it, change the codec flag to -c:a libopencore_amrwb and set a compatible bitrate (e.g., -b:a 23850). The output file extension remains .amr, but you should verify that your target playback system or telephony platform supports AMR-WB, as some older mobile devices only handle AMR-NB.
Yes — on Linux or macOS, you can loop over SWF files in a directory with a shell command like: for f in *.swf; do ffmpeg -i "$f" -c:a libopencore_amrnb -b:a 12200 "${f%.swf}.amr"; done. On Windows Command Prompt, use: for %f in (*.swf) do ffmpeg -i "%f" -c:a libopencore_amrnb -b:a 12200 "%~nf.amr". This is particularly useful when extracting audio from a large archive of legacy Flash content, since the browser-based tool processes one file at a time.

Technical Notes

SWF audio is typically encoded as MP3 at varying bitrates (often 64–128 kbps) or occasionally as AAC, meaning the conversion to AMR involves a full decode-then-reencode cycle with unavoidable generation loss — the audio is decompressed from its original lossy format and re-compressed into AMR-NB. Because AMR-NB caps at 12,200 bps and uses a narrow 3.4 kHz bandwidth, the resulting file will be dramatically smaller than the original SWF audio but with significantly reduced fidelity for anything other than speech. AMR files carry no metadata fields for title, artist, or album — any ID3-style tags present in the SWF's embedded MP3 audio will be lost in conversion. The libopencore_amrnb encoder is a clean-room implementation of the 3GPP AMR-NB specification and produces files that are broadly compatible with mobile telephony systems, 3GP players, and VoIP infrastructure. It's worth noting that SWF files may embed multiple audio streams at different points in a Flash timeline; FFmpeg typically selects the first detected audio stream, which may not capture all audio if the SWF is structured as a multi-scene interactive piece with conditionally triggered sounds.

Related Tools