Convert SWF to HEVC — Free Online Tool
Convert SWF Flash files to HEVC (.hevc) using the libx265 encoder, compressing the rasterized video content from Flash's FLV1 or MJPEG streams into a modern H.265 bitstream. This is especially useful for archiving legacy Flash animations and interactive content that can no longer play in modern browsers after Flash's end-of-life.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your SWF file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
SWF files contain vector graphics, animation timelines, and multimedia streams typically encoded with the FLV1 (Sorenson Spark) or MJPEG video codec and MP3 or AAC audio. FFmpeg reads the SWF container and decodes the embedded video stream, then re-encodes it using the libx265 encoder into a raw HEVC bitstream. Because HEVC is a pure video codec format (not a container like MP4 or MKV), the output .hevc file contains only the video track — any audio embedded in the SWF is dropped. The x265 encoder applies Constant Rate Factor compression at CRF 28 by default, which balances file size and visual quality well for typical Flash video content.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg tool. In this browser-based tool, it runs as FFmpeg.wasm compiled to WebAssembly, executing entirely in your browser without sending your SWF file to any server. |
-i input.swf
|
Specifies the input SWF file. FFmpeg's SWF demuxer parses the Flash container to locate and extract embedded video streams (typically FLV1 or MJPEG) for decoding. |
-c:v libx265
|
Selects the libx265 encoder to re-encode the decoded SWF video stream into H.265/HEVC, replacing the legacy FLV1 or MJPEG codec with a modern, highly efficient compression standard. |
-crf 28
|
Sets the Constant Rate Factor to 28, which is the default quality level for libx265. This provides a good balance between file size and visual quality for typical Flash video content, with lower values producing higher quality and larger files. |
-x265-params log-level=error
|
Passes a parameter directly to the x265 encoder to suppress its verbose per-frame statistics output, showing only actual encoding errors. This does not affect the encoded video in any way. |
output.hevc
|
Specifies the output file as a raw HEVC bitstream with the .hevc extension. This format contains only the video track — any audio embedded in the original SWF is not included, as the raw HEVC format has no container structure to hold audio streams. |
Common Use Cases
- Archiving legacy Flash animations and cartoons that were created before browser Flash support was discontinued in 2020, preserving them as high-efficiency video files
- Extracting the video stream from an SWF-based e-learning module or product demonstration for repurposing into a modern video player
- Compressing old Flash video advertisements or promotional clips into HEVC for long-term storage at significantly reduced file sizes compared to the original FLV1-encoded content
- Preparing Flash-based screencasts or tutorial videos for transcoding pipelines that accept raw HEVC bitstreams as an intermediate format
- Converting SWF game cutscenes or intro animations into a codec-efficient format for inclusion in a digital media archive
Frequently Asked Questions
No. The HEVC (.hevc) format is a raw video bitstream format and does not support audio tracks, subtitles, or any container-level metadata. Any MP3 or AAC audio embedded in your SWF file will be discarded during this conversion. If you need to preserve the audio, you should convert to a container format like MP4 or MKV instead, where both the HEVC video and audio streams can coexist.
SWF files often use vector graphics that render crisply at any resolution within the Flash player, but FFmpeg rasterizes the SWF at a fixed resolution when decoding it for re-encoding. The output quality is bounded by that rasterized resolution, not by the original vector fidelity. Additionally, the FLV1 (Sorenson Spark) codec used in many SWFs is a low-quality legacy codec, so the source material itself may already have visible compression artifacts before x265 re-encodes it.
It depends heavily on the source content. SWF files using FLV1 video are often already highly compressed, and HEVC at CRF 28 may produce a comparable or slightly smaller file for typical animated content. However, for SWFs that embed MJPEG video streams, HEVC will typically produce dramatically smaller output files since MJPEG stores each frame independently without inter-frame compression. For simple Flash animations, the size difference may be modest.
Yes. The -crf flag controls quality, with lower values meaning higher quality and larger files, and higher values meaning more compression and lower quality. The default CRF of 28 is suitable for most Flash video content. For archival purposes where quality is a priority, try CRF 18–23. For purely space-saving conversions of low-resolution Flash videos, CRF 30–35 is often acceptable. The valid range for libx265 is 0 (lossless) to 51 (worst quality).
Yes. On Linux or macOS you can use a shell loop: `for f in *.swf; do ffmpeg -i "$f" -c:v libx265 -crf 28 -x265-params log-level=error "${f%.swf}.hevc"; done`. On Windows Command Prompt, use: `for %f in (*.swf) do ffmpeg -i "%f" -c:v libx265 -crf 28 -x265-params log-level=error "%~nf.hevc"`. This is particularly useful when archiving large collections of legacy Flash content.
This flag suppresses the verbose per-frame encoding statistics that libx265 normally prints to the console, leaving only actual errors visible. It has no effect on the quality or content of the output file — it is purely cosmetic for cleaner terminal output. You can safely remove it if you want to see detailed x265 encoding progress, which can be helpful for diagnosing unexpected quality or performance issues during conversion.
Technical Notes
SWF-to-HEVC conversion involves several important limitations worth understanding. FFmpeg's SWF demuxer supports extracting embedded FLV1 and MJPEG video streams but has limited support for complex SWF files that rely heavily on ActionScript interactivity or dynamically rendered vector graphics — in such cases, FFmpeg may only capture a partial or blank video. The output format, a raw .hevc bitstream, lacks a container wrapper, meaning most media players cannot open it directly without a container like MP4 (use `-c:v libx265 -movflags +faststart` in an MP4 output if broad compatibility is needed). The libx265 encoder includes the `-x265-params log-level=error` flag to suppress noisy console output without affecting encoding behavior. Because HEVC decoding is computationally intensive, playback of the output on older devices may be limited even though the file size is smaller. No metadata from the SWF (such as frame rate tags or embedded SWF header information) is carried over to the raw HEVC bitstream.