Convert HEVC to SWF — Free Online Tool
Convert HEVC/H.265 video files to SWF (Shockwave Flash) format directly in your browser, re-encoding the video stream to FLV1 (Sorenson Spark) and audio to MP3 using FFmpeg. This is a niche but occasionally necessary conversion for embedding legacy H.265 content into Flash-based web players or archived interactive presentations.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your HEVC 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
HEVC/H.265 is a modern, highly efficient video codec that SWF containers and Flash players cannot natively decode. This conversion fully re-encodes the video stream from H.265 to FLV1 (also known as Sorenson Spark or H.263-derived codec), which is the native video codec used inside SWF files. The audio is simultaneously transcoded to MP3 using the LAME encoder at 128k bitrate. Because FLV1 is a much older and less efficient codec than H.265, you should expect a significant increase in file size for equivalent quality, and the maximum quality ceiling of FLV1 is considerably lower than what H.265 can produce. There is no stream copying (remuxing) possible here — every frame must be decoded from H.265 and re-encoded to FLV1, making this a computationally intensive process.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg media processing tool. In the browser version, this runs via FFmpeg.wasm compiled to WebAssembly, executing entirely on your local machine without any server upload. |
-i input.hevc
|
Specifies the input file, which is an HEVC/H.265 encoded video. FFmpeg will decode the H.265 bitstream frame-by-frame to prepare it for re-encoding into the much older FLV1 codec. |
-c:v flv1
|
Sets the output video codec to FLV1, also known as Sorenson Spark — the native video codec supported inside SWF containers and Adobe Flash Player. This replaces the highly efficient H.265 encoding with this legacy H.263-derived codec. |
-c:a libmp3lame
|
Uses the LAME MP3 encoder to transcode the audio stream into MP3 format, which is the standard and most broadly compatible audio codec for SWF files across different Flash Player versions. |
-q:v 5
|
Sets the FLV1 video quality on a scale from 1 (best quality, largest file) to 10 (lowest quality, smallest file). A value of 5 provides a balanced midpoint between file size and visual quality for FLV1-encoded SWF output. |
-b:a 128k
|
Sets the MP3 audio bitrate to 128 kilobits per second, a standard bitrate that provides acceptable stereo audio fidelity for most SWF content while keeping file size reasonable. |
output.swf
|
Specifies the output file with the .swf extension. FFmpeg uses this extension to determine the SWF container format, which wraps the FLV1 video and MP3 audio streams in a structure readable by Flash Player and compatible emulators. |
Common Use Cases
- Embedding converted video into legacy Flash-based e-learning platforms or LMS systems that only accept SWF content and cannot handle modern H.265 input
- Preserving or restoring archived interactive Flash presentations that require video content wrapped in SWF format for playback in emulators like Ruffle
- Converting H.265 footage for use in older Flash authoring tools (e.g., Adobe Animate in legacy mode) that import SWF video components
- Preparing video assets for Flash-era game mods or interactive demos that embed FLV1-encoded video inside SWF wrappers
- Downconverting high-efficiency HEVC recordings to Flash-compatible format for display on retro or embedded kiosk systems running Flash Player
Frequently Asked Questions
This is expected. HEVC/H.265 is one of the most efficient video codecs available, capable of maintaining high quality at very low bitrates. FLV1 (Sorenson Spark), the video codec used inside SWF files, is a much older codec derived from H.263 and has a significantly lower quality ceiling. Even at the best quality settings, FLV1 will produce visible blocking and blurring artifacts that H.265 avoids. The conversion is inherently lossy and generationally degrades quality.
Almost certainly larger. H.265 is renowned for its compression efficiency, often achieving the same visual quality as H.264 at half the bitrate. FLV1 is far less efficient than either, so re-encoding to FLV1 at comparable quality will substantially increase the file size. If your original HEVC file was already compact thanks to H.265 compression, the SWF output may be several times larger.
The SWF file will contain FLV1-encoded video and MP3 audio, both of which are natively supported by Adobe Flash Player. Ruffle, the open-source Flash emulator, also supports FLV1 video playback in SWF files, though support varies by Ruffle version. If you are targeting a specific Flash emulator or legacy Flash Player version, test the output SWF to confirm compatibility before mass-converting files.
No. SWF and the FLV1 codec do not support HDR color spaces or high-resolution content in any meaningful way. FLV1 was designed for web-era standard definition video. HDR metadata from the HEVC source will be discarded, and if your source is 4K or higher resolution, you should strongly consider downscaling it before or during conversion, as FLV1 encoding at 4K resolution is impractical and unsupported by most Flash players.
The video quality is controlled by the '-q:v 5' flag, where values range from 1 (best quality, largest file) to 10 (lowest quality, smallest file). To improve visual quality at the cost of file size, lower the number, e.g. '-q:v 2'. The audio bitrate is set by '-b:a 128k' and can be raised to '-b:a 192k' or '-b:a 256k' for better audio fidelity. For example: 'ffmpeg -i input.hevc -c:v flv1 -c:a libmp3lame -q:v 2 -b:a 192k output.swf'.
Yes, on the command line you can use a shell loop to batch process files. On Linux or macOS, run: 'for f in *.hevc; do ffmpeg -i "$f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "${f%.hevc}.swf"; done'. On Windows (PowerShell), use: 'Get-ChildItem *.hevc | ForEach-Object { ffmpeg -i $_.FullName -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k ($_.BaseName + ".swf") }'. The browser-based tool processes one file at a time, so the desktop FFmpeg command is recommended for bulk conversions.
Technical Notes
FLV1 (Sorenson Spark) inside SWF is a lossy-only codec with no support for transparency, subtitles, chapters, or multiple audio tracks — all features that are equally absent from the HEVC source format in this pipeline. The SWF container is fundamentally designed for Flash content and is restricted to a single video and audio stream. MP3 audio encoded via libmp3lame is the standard audio format for SWF files, as AAC inside SWF has inconsistent support across Flash Player versions. One important limitation is that SWF files containing video are not truly standalone — they rely on a Flash Player or emulator environment to render. The -x265-params log-level=error flag from the input HEVC processing suppresses verbose codec logging during decode. Because HEVC decoding and FLV1 encoding are both CPU-intensive, large or high-resolution HEVC files may take considerable time to process in the browser via FFmpeg.wasm. Files larger than 1GB should be processed using the desktop FFmpeg command shown on this page for better performance.