Initializing... drag & drop files here
Supports: MP4, M4V
SWF (originally "ShockWave Flash", later rebranded "Small Web Format") was the file container for Adobe Flash content from 1996 until Adobe's Flash Player end-of-life on December 31, 2020. Adobe blocked all Flash content from running in Flash Player on January 12, 2021, and every major browser removed the Flash plugin shortly after. For new web video, MP4 (H.264/AAC) is the right answer in essentially every case. Converting MP4 to SWF only makes sense when you have a legacy pipeline that still consumes SWF as input — be honest about that before you convert.
For new presentations, training, or web embeds, convert MP4 to MP4 (re-encode with Compress MP4) or MP4 to WebM instead — both play natively in every modern browser without an emulator.
| Property | SWF (Flash) | MP4 (H.264/AAC) | HTML5 <video> (MP4/WebM) |
|---|---|---|---|
| Native browser support | None since 2021 | None directly — needs <video> tag |
Yes — Chrome, Firefox, Edge, Safari, Opera |
| Mobile playback (iOS/Android) | Never on iOS; Android Flash removed 2012 | Yes | Yes |
| Vendor status | End-of-life Dec 31, 2020 | ISO/IEC 14496-14 standard | W3C / WHATWG standard |
| Vector + scripting | Yes (ActionScript) | No | Limited (SVG/CSS/JS overlays) |
| Typical video codec inside | FLV1 (Sorenson H.263), VP6, later H.264 | H.264, H.265, AV1 | H.264, VP9, AV1 |
| Typical use today | Legacy archives, Animate projects | Universal video delivery | Web playback |
| Plays in Ruffle emulator | Partial (no video on many SWFs yet) | N/A | N/A |
SWF is a container, not a codec — what plays back depends on which video codec is embedded.
| Codec | When Flash added it | Best for | Compatibility notes |
|---|---|---|---|
| FLV1 (Sorenson Spark) | Flash Player 6 (2002) | Maximum compatibility with old Flash players and Animate import | H.263-derived; lower efficiency than modern codecs |
| VP6 (On2) | Flash Player 8 (2005) | Better quality at the same bitrate as FLV1 | Decoder rarely available outside Flash |
| H.264 in F4V/SWF | Flash Player 9 update 3 (2007) | High-quality Flash video | Most modern SWF decoders / Ruffle handle this poorly; prefer MP4 if your target accepts it |
| MJPEG | (offered for compatibility) | Frame-by-frame editing pipelines | Very large files |
If you don't know what the target SWF consumer expects, FLV1 is the safest default — it's what Flash Player itself used and what Animate's video import expects.
No. Adobe blocked Flash content in Flash Player on January 12, 2021, and Chrome, Firefox, Edge, and Safari removed the Flash plugin around the same time. To play an SWF today you need the Ruffle emulator (browser extension, desktop app, or WebAssembly embed) or a preserved standalone Flash Projector binary. If browser playback matters, keep the file as MP4.
Often not yet. Ruffle's ActionScript coverage is high (around 99% of AS1/AS2 and roughly 90% of AS3 language features as of 2026), but video tags inside SWF — especially anything beyond plain FLV1 — are still an incomplete area of the emulator. Test your specific SWF in Ruffle before relying on it; for guaranteed playback, keep the original MP4.
MP4 (ISO/IEC 14496-14) is the modern, standardized container that every browser, phone, TV, and editing app reads natively. SWF was tied to a single vendor's plugin that has been end-of-life for over five years. Convert to SWF only when a specific legacy tool demands it; convert from SWF whenever you can with SWF to MP4.
FLV1 (Sorenson Spark) for almost every case. It's the codec that Flash Player and Adobe Animate's video import were designed around, and it produces reasonable file sizes. Pick MJPEG only when a downstream tool explicitly needs intra-only frames (every frame independently encoded), at the cost of much larger output.
Yes. Adobe Animate (renamed from Flash Professional in February 2016) is in maintenance mode but still officially supports publishing to SWF and AIR. Imported video inside an Animate timeline expects FLV1, so use that codec when targeting Animate.
Usually larger, sometimes much larger. SWF's typical video codecs (FLV1, VP6) are 15-20 years older than H.264 and compress less efficiently at the same visual quality. Use the Constant Bitrate or Specific File Size option if you need to keep output under a particular cap.
Yes. Expand the Trim option, set a start time and duration in HH:MM:SS.mmm, and only the trimmed segment is encoded into the SWF. Use the dedicated Video Cutter if you need finer control or multiple segments.
Files process in your browser session, so the practical limit is your device's available memory and how long you're willing to wait. Long 1080p MP4 inputs re-encoded to FLV1 can grow significantly; trim or downscale to 720p/480p first if the SWF needs to stay compact.
No. SWF is a vector-and-scripting container that can hold video; MP4 is a video-and-audio container with no scripting. A converted SWF only contains the video stream — you can't roundtrip an SWF that had ActionScript, vector graphics, or interactivity through MP4 and back without losing all of that.