SWF to M4R: Rescuing Flash Audio as an iPhone Ringtone
SWF is Adobe Flash's file format, and Flash Player reached end of life on 31 December 2020. The game themes, cartoon catchphrases and e-learning jingles that lived inside .swf files are now hard to play at all, which makes a ringtone a nice way to keep one. This page reads the audio stored in an SWF, discards the animation, and re-encodes the part you pick as AAC in an .m4r file, the iPhone's custom ringtone format. M4R is the same AAC-in-MPEG-4 file as M4A, named so iOS treats it as a tone.
One honest caveat first: only SWF files whose sound is embedded as a stream will give you audio. Flash also played sounds driven by ActionScript or loaded from separate files, and those may not be extractable from the SWF at all.
Will Your SWF Give You a Ringtone?
| How the SWF plays its sound | Extractable here? | What to do |
|---|---|---|
| Stream sound synced to the timeline (cartoons, music videos, narrated slides) | Yes, usually | Convert on this page |
| Event sounds triggered by buttons or ActionScript (game effects, UI clicks) | Often not | Export them with an SWF decompiler such as the open-source JPEXS, then convert the exported file |
Music loaded from a separate .mp3 at runtime (common in games) |
Not inside the SWF | Find the .mp3 and use MP3 to M4R |
| Vector animation with no sound | No | Nothing to extract |
How to Convert SWF to M4R
- Upload Your SWF File: Drag the
.swfonto the page or click "+ Add Files"; several files can be queued. No Flash Player is required. - Trim to 30 Seconds: Switch Trim on and enter a Start time and a Duration, in seconds or
HH:MM:SS.sss. Apple says ringtones can be up to 30 seconds long, and the note under Duration repeats it. Flash timelines often begin with a loader or silence, so start after it. - Set Bitrate, Sample Rate and Channels: Choose Constant Bitrate (8 to 384 kbps), Custom Bitrate, one of five Variable Bitrate bands (20k-32k up to 96k-112k), or Specific file size; Quality Preset is the hands-off mode. Audio Codec is AAC. Leave Audio Sample Rate on Original: Flash audio uses 5.5, 11, 22 or 44.1 kHz, and upsampling a 22 kHz track adds nothing.
- Convert and Download: Click Convert and save the
.m4r. The file is uploaded over HTTPS, processed on our servers and deleted automatically after a few hours. Free, no sign-up, no watermark.
SWF vs M4R
| Property | SWF (source) | M4R (output) |
|---|---|---|
| Full name | Small Web Format / Shockwave Flash | MPEG-4 audio with Apple's ringtone extension |
| Contents | Vector and bitmap graphics, ActionScript, sound, sometimes video | One AAC audio track |
| Audio codecs | MP3, ADPCM, Nellymoser, Speex, uncompressed PCM | AAC-LC |
| Sample rates | 5512, 11025, 22050 or 44100 Hz | Original, or a rate you choose |
| Status | Flash Player end of life since 31 December 2020 | Current iPhone ringtone format |
| Length | A loop, a cartoon, a whole game | 30 seconds or less |
Settings for Flash Audio
Most Flash sound was compressed hard to keep downloads small: 22 kHz mono ADPCM or MP3 was common, and Nellymoser was a mono voice codec. For those, 64-96 kbps Mono gives a 30-second ringtone of 240-360 KB (bitrate × seconds ÷ 8 = kilobytes) with nothing audible lost. A game theme stored as 44.1 kHz stereo MP3 deserves 128-160 kbps Stereo.
Where Old SWF Files Turn Up
Most surviving .swf files come from a handful of places: archived game and animation collections, old project folders from Flash and Animate, e-learning courses exported from authoring tools, and website backups. Files from archives are usually complete, self-contained SWFs; files saved from a live website were often just a loader that pulled the real content, including its music, from other files on the server, so they can be nearly empty.
Compression matters as well. SWF files that start with the letters FWS are uncompressed and those starting CWS are zlib-compressed; both are the common, well-supported kinds. Later files compressed with LZMA (starting ZWS) are less widely supported by decoders and may not open. If a file refuses to convert, open it in an SWF decompiler to see whether it contains any sound at all before trying again.
Frequently Asked Questions
Why does my SWF ringtone come out silent or fail?
The SWF probably plays its sound through ActionScript, loads it from a separate file, or has no sound at all. Only audio stored as a timeline stream inside the SWF can be extracted here.
How long can the ringtone be?
Up to 30 seconds. Apple's ringtone support article says so, and GarageBand for iPhone also caps exported ringtones at 30 seconds. A 40-second figure appears in iTunes-era guides, but not in Apple's current documentation.
Can a looping Flash track make a good ringtone?
Yes. Game and menu music was often written as a seamless loop, and a 30-second slice cut on a bar line sounds natural. Set the Start time on a downbeat.
How do I put it on my iPhone?
Connect the iPhone to a Mac and drag the .m4r onto it in the Finder sidebar (macOS Catalina or later), or use iTunes on Windows. Choose it in Settings > Sounds & Haptics > Ringtone, or for one person via Contacts > Edit > Ringtone. Another route: save it to Files, import it into GarageBand on the iPhone and use Share > Ringtone.
Can I make an Android ringtone from the same SWF?
Android uses MP3 or OGG rather than M4R, so use SWF to MP3 with the same Trim.
Can I keep the full soundtrack rather than 30 seconds?
Yes. SWF to M4A extracts the same stream audio at full length.
What happens to my file?
It is uploaded over TLS, processed on our servers and deleted automatically after a few hours. It is never shared or made public.