Initializing... drag & drop files here
Supports: MKV
This page turns a Matroska video into a SWF — Adobe's Flash file format — and it will not pretend that is a normal thing to want in 2026. Adobe stopped supporting Flash Player on December 31, 2020, and began blocking Flash content from running on January 12, 2021, so a .swf you create today has no mainstream player left. There are still real reasons to make one: a legacy intranet or e-learning system that ingests nothing else, or a preservation workflow aimed at a Flash emulator. This walkthrough covers the two codec choices, the constraints the SWF container imposes whether you like them or not, the errors people actually hit, and the point at which you should target MP4 instead.
.mkv onto the page or click "Add Files" to browse. Several clips can be queued and converted with identical settings in one pass..swf. Files are uploaded over an encrypted connection, processed on our servers, and deleted automatically after a few hours — no sign-up, no watermark.MKV is a container, not a codec. Yours almost certainly holds H.264, HEVC, VP9, or AV1, and SWF can hold none of those. The picture has to be re-encoded into something a Flash player understands, and this page offers exactly two candidates.
| FLV / Sorenson Spark (default) | MJPEG | |
|---|---|---|
| What it is | An incomplete implementation of ITU-T H.263, FourCC FLV1 |
Every frame stored as an independent JPEG |
| Historical role | The required video format for Flash Player 6 and 7 | A niche option some Flash tooling accepted |
| Compression | Inter-frame — only the changes between frames are stored | Intra-frame only — no motion compensation at all |
| File size | Far smaller | Much larger; a two-second 1080p test clip encoded to roughly 3.2× the Sorenson Spark version in our own side-by-side |
| Emulator playback | Ruffle decodes Sorenson-flavour H.263 through its h263-rs decoder |
Not what the Flash emulators were built to decode |
| Pick it when | Almost always — including anything you expect Ruffle to open | A downstream system explicitly demands Motion JPEG inside a SWF |
A practical note on quality control: neither codec supports CRF, so the Constant Quality slider on this page has no effect on the encode. Stay on Quality Preset, which scales your source MKV's own bitrate, or state an explicit target with Constant Bitrate or Specific file size.
Some of these are our converter's decisions and some are hard limits of the format. Either way they are not optional, and none of them can be recovered afterwards.
| From your MKV | What happens in the SWF | Why |
|---|---|---|
| Soft subtitle tracks | Dropped entirely | The SWF container has no soft-subtitle stream |
| Chapter markers | Dropped entirely | No equivalent structure exists |
| Multiple audio tracks | One track survives | Automatic stream selection keeps the track with the most channels; the rest are discarded |
| A 5.1 or 7.1 mix | Folded into an MP3 track | MP3 is the only audio codec the SWF muxer accepts here |
| Audio sample rate | Forced to 44.1 kHz | SWF accepts only 44100, 22050, or 11025 Hz; our pipeline sets 44.1 kHz and gives you no control over it |
| HDR / 10-bit colour | Converted to plain 8-bit | There is no tone-mapping stage anywhere in the pipeline |
| Interlaced footage | Combing stays baked in | There is no deinterlacing filter anywhere in the pipeline |
If the goal is video that people will actually watch, stop here and convert MKV to MP4. H.264 in an MP4 plays on phones, browsers, TVs, and editors, preserves far more of your source than Sorenson Spark can, and carries an audio track properly instead of flattening it to a 44.1 kHz MP3. If you want an open, royalty-free target rather than a proprietary one, MKV to WebM is the modern equivalent of what SWF once was for the web.
The narrow cases where a .swf genuinely earns its place are legacy ingest systems that validate on extension, and emulator or preservation work where Ruffle is the intended player. And if you arrived here trying to rescue an old Flash file rather than manufacture a new one, you want the opposite direction — convert SWF to MP4 is the conversion most people in this corner of the web are actually looking for.
Usually not. Adobe ended Flash Player support on December 31, 2020 and started blocking Flash content on January 12, 2021, and no current browser runs SWF. You would be taking modern H.264 or HEVC video out of a container designed to hold everything, re-encoding it into a codec from the early 2000s, and losing subtitles, chapters, and extra audio tracks in the process. Do it only when a specific legacy system requires the extension, or when you are deliberately authoring for a Flash emulator.
FLV — Sorenson Spark, FourCC FLV1 — paired with MP3 audio, unless you change the video codec to MJPEG. Sorenson Spark is an incomplete implementation of H.263 and was the required video format for Flash Player 6 and 7. There is no H.264-in-SWF option on this page: later Flash Player versions could play H.264, but that was normally delivered as an F4V or FLV file rather than embedded in a SWF.
Because the container leaves nothing to choose. The SWF muxer in our pipeline accepts MP3 audio only, so Audio Codec shows a single entry, and the container accepts only 44100, 22050, or 11025 Hz — so the sample rate is set to 44.1 kHz for you and no control is exposed. We confirmed why that guard exists by feeding a 48 kHz track straight into a SWF mux: it fails outright with no packets written, rather than resampling itself.
If you keep the default FLV codec, that is the intended path. Ruffle decodes H.263 video through its own h263-rs implementation, which handles most Sorenson-flavour streams — the flavour Flash used and the flavour this page writes. Ruffle's video support is a reimplementation rather than a perfect clone of Flash Player, so treat playback as likely rather than guaranteed, and do not expect an MJPEG-in-SWF file to work there.
More than most people expect, and it compounds. Your source is already lossy, and Sorenson Spark needs several times the bitrate of H.264 to look comparable — so at any sensible file size, fine detail softens and fast motion smears. Keeping Quality Preset at Highest and leaving the resolution alone limits the damage, but a SWF will never look as good as an MP4 made from the same MKV. Always keep the original.
From the video, in practice. The classic Flash constraints people remember — stage dimensions, ActionScript limits — apply to authored Flash content, not to a straight video-to-SWF re-encode. What actually decides your file size here is the codec, the resolution, and the bitrate: Sorenson Spark is inefficient, so a long or high-resolution MKV produces a large SWF. Trim with the Time Range control or drop the resolution rather than fighting it with an aggressive size target.
Yes — queue them together and they all run through the same Video Codec, File Compression, and resolution settings. Because Quality Preset works as a multiplier on each source's own bitrate rather than as a fixed quality target, a mixed batch of heavily and lightly compressed MKVs will produce very differently sized SWFs. Use Specific file size instead if you need every output in the batch to land near the same budget.
Your MKV is uploaded over an encrypted connection, converted on our servers, and both the upload and the resulting SWF are deleted automatically after a few hours. There is no sign-up, no watermark, and files are never shared or made public. If your source is a long film and you only need a segment, trimming it first with the video cutter makes for a much shorter upload.