Initializing... drag & drop files here
Supports: SWF
This turns a Macromedia/Adobe Flash .swf file into a 3GP video — the low-resolution mobile container that older feature phones and basic media players accept. Read the next section before you upload anything, because it decides whether your particular .swf can be converted at all: we read the media streams embedded inside the file, and we do not run the Flash timeline or ActionScript. A Flash file that is a video wrapper converts cleanly. A Flash file that is a vector animation or a game does not, and it fails at the input stage rather than producing a blank video.
Every row here was reproduced on a purpose-built SWF of that exact kind.
| What is inside the .swf | Converts to 3GP? | What you get |
|---|---|---|
| Embedded video stream (VP6, Sorenson/FLV1, Flash Screen Video) | Yes | A real video at the embedded stream's frame size and rate, with its audio if present |
Streamed audio only (SoundStreamHead / SoundStreamBlock) |
Partly | A valid 3GP with an audio track and no picture at all |
Event sounds only (DefineSound / StartSound) |
Partly | Same — audio-only 3GP, and only the first embedded sound is used |
A DefineBitsJPEG2 bitmap timeline |
Yes | Surfaces as a motion-JPEG stream at the SWF frame rate |
| Vector shapes, tweens, ActionScript, games, banners | No | Fails at input: "could not find codec parameters" / "End of file" |
The last row is the common case for Flash cartoons, banner ads and browser games, and there is no setting on this page that changes it. For those files the realistic tools are the open-source Ruffle Flash emulator, which actually runs the movie so you can screen-record it, or JPEXS Free Flash Decompiler, which lets you pull individual assets out.
.swf onto the page or click "Add Files". You can queue several files and convert them with the same settings in one batch.Three of the four codec choices on this page silently change something other than quality.
| Codec | What lands in the file | The catch |
|---|---|---|
| H.264 | avc1 — H.264 in a 3GP wrapper |
None; keeps your chosen frame size. This is what the page opens on |
| H.263 | s263 — the classic 3G handset codec |
The frame is snapped to a fixed legal size and your resolution choice is overridden |
| MPEG-4 | mp4v — MPEG-4 Part 2, Simple Profile |
Do not use "Constant Quality" with it; see below |
| Xvid | mp4v — also MPEG-4 Part 2, Simple Profile |
Byte-for-byte the same codec family as MPEG-4 once it is in the container |
| AAC audio | mp4a |
Keeps the source sample rate and channel count |
| AMR Narrow Band | samr |
Forced to 8 kHz mono regardless of your source |
| AMR Wide Band | sawb |
Forced to 16 kHz mono regardless of your source |
On H.263 and the resolution snap. H.263 only encodes five frame sizes: 128x96, 176x144 (QCIF), 352x288 (CIF), 704x576 (4CIF) and 1408x1152 (16CIF). The converter picks the largest of those that fits inside your source and scales to it, which overrides whatever you set under "Video resolution" and does not preserve the aspect ratio. A 320x240 source becomes 176x144. This is a deliberate rescue: asked to encode 320x240 as H.263 directly, the encoder simply refuses with "Error while opening encoder — maybe incorrect parameters such as bit_rate, rate, width or height".
On "Constant Quality" with MPEG-4 or Xvid. Those two run on a 1-31 quantiser scale where lower is better, but the numeric value carries over from the H.264-style 16-51 scale the panel opens with. Leaving it at its opening value therefore asks for near-worst quality rather than good quality. Use "Quality Preset" (which correctly scales from the source bitrate on a video source) or "Constraint Quality" with an explicit maximum bitrate instead.
.swf is a vector or ActionScript movie with no embedded media stream. Nothing on this page can render it; use Ruffle to play and capture it, or JPEXS to extract its assets.The hard limit is what a .swf actually stores. Flash was a runtime, and most .swf files are programs — shapes, tweens and ActionScript to be executed, not frames to be decoded. Extracting an embedded video or sound stream is all any converter can do without a Flash player, which is why encrypted, obfuscated or purely interactive files fail here regardless of settings. Adobe stopped supporting Flash Player on 31 December 2020 and began blocking Flash content from running on 12 January 2021, so nothing plays these files natively any more either. Note that the same limitation applies across every .swf route on this site — a file that fails here will fail on SWF to MP4 and SWF to JPG too, because they all read the same embedded streams. Ruffle is the escape hatch, not another converter.
Because it contains no decodable media stream. The converter reads embedded video and audio streams out of the file; it does not run the Flash timeline or ActionScript, and it does not rasterise vector artwork. A hand-built SWF containing only a background colour, shape definitions and frame markers reproduces exactly that error. If your file is a game, a banner or a vector cartoon, this is the expected outcome and no combination of settings will change it.
Only if you specifically need playback on an older feature phone or a basic device that lists 3GP support. For every modern phone, computer and browser, MP4 is the better target — sharper at the same size and universally supported. Both containers are built on the same ISO base media file format, so the conversion effort is identical; the difference is which codecs and frame sizes the receiving device expects.
No, in two separate ways. First, a game usually has no embedded video stream, so it will not convert at all. Second, even if it did, video is linear by nature — buttons, quizzes and anything driven by user input cannot survive into a passive recording. Ruffle is the tool for actually running an old Flash game today; a video converter is not.
Match the device. Classic 3G handsets expect QCIF (176x144) or QVGA (320x240). Pick the closest small entry from the Preset Resolutions list, remembering that it sets height and lets width follow the source aspect ratio. Going above the phone's screen resolution only wastes bytes and may stutter on ageing hardware. If you select H.263, the codec's own fixed-size snap takes over anyway.
AAC when the soundtrack has music and the target device is anything from the last fifteen years. AMR Narrow Band when you are genuinely targeting an old 3G handset and the content is speech — it is forced to 8 kHz mono, which is why it sounds the way it does. AMR Wide Band sits in between at 16 kHz mono. All three are offered on this page; choose explicitly rather than relying on whatever appears preselected.
Not in any way that survives into the file. Both entries produce an MPEG-4 Part 2 Simple Profile stream tagged mp4v inside the 3GP, so a player cannot tell them apart. The Xvid entry exists because the name is what many people search for; if you are choosing between them for a 3GP target, the decision that matters is MPEG-4 Part 2 versus H.264, not Xvid versus MPEG-4.
If the SWF embeds an audio stream, yes — it is decoded and re-encoded into your chosen 3GP audio codec. Sound triggered from ActionScript at runtime, or loaded from a separate file or a remote URL, is not inside the .swf and cannot be captured. A file that embeds several separate event sounds is a special case: each surfaces as its own stream and only the first reaches the output.
Adobe ended Flash Player support on 31 December 2020 and started blocking Flash content from running on 12 January 2021. Browsers removed the plugin entirely, so .swf files no longer play natively anywhere. Converting the ones that carry real video into a standard container is the usual way to preserve them; for the ones that are genuinely interactive, the Ruffle emulator is the preservation route rather than any converter.