What is an SWF File?

An SWF file is the delivery format of Adobe Flash: a binary file that combines vector graphics, text, video, sound, and ActionScript bytecode for playback in Flash Player. Adobe ended Flash Player support on December 31, 2020, so the content now needs an emulator or other specialized software.

How SWF Files work

SWF is a tagged binary format designed for efficient delivery to Flash Player, not for exchanging graphics between editors. Its tags carry graphics, bitmaps, sound, and video along with bytecode that a virtual machine interprets as ActionScript. Simple playback is driven by a timeline alone; interactive content also runs ActionScript, which can reference resources outside the file. Files up to SWF 8 use ActionScript 1.0 or 2.0, while SWF 9 and later can use ActionScript 3.0 on a second virtual machine (AVM2), so two files with the same extension may need different runtime support. Adobe stopped supporting Flash Player on December 31, 2020 and blocked Flash content from running in it from January 12, 2021; Chrome 88 and Firefox 85 removed Flash support that same January. Access now relies on emulation, format-specific extraction tools, or conversion.

Key facts

  1. The first three bytes identify the packaging: FWS is uncompressed, CWS means everything after the first 8 bytes is zlib-compressed (SWF 6 and later), and ZWS means LZMA compression (SWF 13 and later). The fourth byte is the SWF version. A tool that recognizes only the first two rejects ZWS files; FFmpeg’s SWF demuxer probes for FWS and CWS only.
  2. In SWF 9 and later, the ActionScript3 flag in the FileAttributes tag (tag 69) records whether the file uses ActionScript 3.0 or ActionScript 1.0/2.0, and the two run on different virtual machines. Older files use ActionScript 1.0/2.0, and files before SWF 8 may lack that tag entirely. Ruffle, an open-source Flash Player emulator, tracks its support for each separately and describes itself as not finished, so test the specific files that matter instead of assuming an archive behaves uniformly.
  3. A media demuxer is not a Flash player. FFmpeg’s SWF demuxer exposes embedded video streams, sounds, lossless bitmaps, and DefineBitsJPEG2 images and skips every other tag, so vector artwork, timeline animation, ActionScript behavior, and bitmaps in the other JPEG tags are absent from what it outputs; its output is not an inventory of the file’s media. Turning such content into video or stills means rendering it in a player or emulator and capturing the result; Ruffle ships an exporter that renders frames to PNG.
  4. The original plugin is not a fallback. Adobe issues no Flash Player security patches after the end-of-life date, blocked Flash content from running in Flash Player from January 12, 2021, removed its download pages, and warns that unauthorized copies are a common source of malware.

When SWF Files matter

Treat SWF primarily as a migration or preservation input because modern browsers no longer provide normal Flash playback. Converting animation may preserve visuals but lose scripts, interaction, or timing behavior.

How Transloadit helps with SWF Files

Transloadit’s audio/video formats table lists swf as readable and writable on the FFmpeg stacks behind Robots such as /video/encode. A separate avm2 row, “SWF (ShockWave Flash) (AVM2)”, is write-only.

FFmpeg’s SWF demuxer reads the audio, video, and some bitmap data embedded in a file and skips other tags, so vector animation and ActionScript-driven behavior are not converted.

Explore Transloadit’s file formats & compression capabilities

Sources

Turn media knowledge into a working pipeline

Connect uploads, processing, AI, storage, and delivery through one declarative API — with the encoding stack, scaling, and format churn handled for you.

Try Transloadit for free