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
- 1The first three bytes identify the packaging:
FWSis uncompressed,CWSmeans everything after the first 8 bytes is zlib-compressed (SWF 6 and later), andZWSmeans LZMA compression (SWF 13 and later). The fourth byte is the SWF version. A tool that recognizes only the first two rejectsZWSfiles; FFmpeg’s SWF demuxer probes forFWSandCWSonly. - 2In 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.
- 3A media demuxer is not a Flash player. FFmpeg’s SWF demuxer exposes embedded video streams, sounds, lossless bitmaps, and
DefineBitsJPEG2images 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. - 4The 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
- Adobe: SWF File Format Specification, Version 19 (mirror; Adobe’s original link no longer resolves)
- Adobe Flash Player EOL General Information Page
- Library of Congress: Flash SWF File Format Family
- Chromium: Flash Roadmap (support removed in Chrome 88)
- Firefox 85.0 release notes (Flash support removed)
- Ruffle: ActionScript compatibility
- Ruffle README (project status and PNG exporter)
- FFmpeg n8.0: libavformat/swfdec.c (SWF demuxer)