Convert MKV to SWF — Free Online Tool

Convert MKV video files to SWF (Shockwave Flash) format using FFmpeg in your browser — no upload required. The conversion re-encodes video using the FLV1 (Sorenson Spark) codec and audio using MP3, producing a legacy Flash-compatible file suitable for older web players and Flash-era archives.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

MKV is a modern, flexible container that commonly holds H.264 or H.265 video alongside AAC or Opus audio. SWF is a legacy Adobe Flash container that only supports a narrow set of codecs: FLV1 (Sorenson Spark) or MJPEG for video, and MP3 or AAC for audio. Because MKV video is almost never encoded in FLV1, this conversion requires a full re-encode of the video stream — FFmpeg decodes the MKV video frame by frame and re-encodes it into FLV1 using the -q:v quality scale. Audio is similarly transcoded from whatever codec MKV carries (often AAC or Opus) into MP3 via the LAME encoder. Any MKV features that SWF doesn't support — subtitles, chapters, multiple audio tracks — are silently dropped during the conversion.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg command-line tool, the engine running under the hood of this browser-based converter via WebAssembly (FFmpeg.wasm). The same binary on your desktop will produce identical output from this command.
-i input.mkv Specifies the input file — in this case a Matroska (.mkv) container, which may carry any combination of video codecs (H.264, H.265, VP9, etc.) and audio codecs (AAC, Opus, FLAC, etc.) along with optional subtitles and chapters.
-c:v flv1 Re-encodes the video stream using the FLV1 codec (Sorenson Spark / H.263 variant), which is one of only two video codecs the SWF container supports. This is a full decode-and-re-encode operation, not a stream copy.
-c:a libmp3lame Transcodes the audio stream to MP3 using the LAME encoder — SWF's default and most widely supported audio format. This replaces whatever audio codec the source MKV carried (commonly AAC or Opus) with a Flash-compatible MP3 stream.
-q:v 5 Sets the FLV1 video quality using a scale of 1 (best quality, largest file) to 10 (lowest quality, smallest file). A value of 5 is the default mid-point; reduce this toward 1 if your output video looks blocky or heavily artifacted.
-b:a 128k Sets the MP3 audio bitrate to 128 kilobits per second — a standard quality level for voice and general video audio. Increase to 192k or 256k for music-heavy content, or reduce to 96k or 64k for speech-only content where smaller file size matters.
output.swf Defines the output filename and tells FFmpeg to write a SWF (Small Web Format / Shockwave Flash) container. The .swf extension triggers FFmpeg's SWF muxer, which wraps the FLV1 video and MP3 audio into a Flash-compatible file structure.

Common Use Cases

  • Restoring or archiving Flash-era multimedia projects that require SWF-wrapped video content for use in legacy Adobe Flash authoring tools like Flash CS6 or Animate.
  • Embedding short video clips into older SWF-based e-learning courses or interactive CD-ROM presentations that only accept Flash video containers.
  • Preparing video content for playback in legacy kiosk systems or industrial displays that run embedded Flash players and cannot be updated to modern formats.
  • Converting recorded MKV tutorial or demo videos into SWF format for inclusion in older Flash-based LMS (Learning Management System) platforms that predate HTML5 video support.
  • Creating test or reference SWF video files when debugging or developing Flash player emulators like Ruffle, using known-good source MKV content as input.
  • Archiving or cataloging Flash multimedia content by converting MKV source masters into SWF format to match the delivery format of original Flash-era web projects.

Frequently Asked Questions

Yes, quality loss is expected and unavoidable. FLV1 (Sorenson Spark) is a considerably older codec than the H.264 or H.265 typically found in MKV files — it produces noticeably more compression artifacts at comparable bitrates, especially in high-motion scenes or detailed textures. The default -q:v 5 setting provides a mid-range tradeoff; lowering the value toward 1 improves quality at the cost of a larger file. For any modern playback scenario, SWF/FLV1 is not a recommended format — this conversion is best suited to legacy compatibility needs.
They are completely dropped. The SWF format has no support for subtitle tracks, chapter markers, or multiple audio tracks — all of which are core features of MKV. FFmpeg will transcode only the primary video and audio streams into the SWF output; no warning is shown for the discarded data. If you need to preserve subtitles, consider burning them into the video stream before converting, using FFmpeg's subtitles filter.
No. Adobe officially ended support for Flash Player on December 31, 2020, and all major browsers have removed the Flash plugin entirely. SWF files cannot be played natively in Chrome, Firefox, Safari, or Edge. To view an SWF output today, you would need a standalone Flash Player executable, a Flash emulator like Ruffle, or a legacy browser environment specifically configured for Flash content.
To change video quality, modify the -q:v value: lower numbers (e.g., -q:v 1 or -q:v 2) produce better quality at larger file sizes, while higher numbers (e.g., -q:v 8 or -q:v 10) reduce file size at the cost of more visible compression. To change audio bitrate, replace -b:a 128k with a value like -b:a 64k for smaller files or -b:a 192k for better audio fidelity. For example: ffmpeg -i input.mkv -c:v flv1 -c:a libmp3lame -q:v 2 -b:a 192k output.swf
Not directly with the single-file command shown, but you can adapt it for batch processing. On Linux or macOS, use a shell loop: for f in *.mkv; do ffmpeg -i "$f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "${f%.mkv}.swf"; done. On Windows Command Prompt, use: for %f in (*.mkv) do ffmpeg -i "%f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "%~nf.swf". This processes every MKV file in the current directory and outputs a matching SWF file.
The file size difference comes down to codec efficiency. FLV1 is a significantly less efficient codec than H.264 or H.265, meaning it needs more data to represent the same visual quality — so SWF files often end up larger than an equivalent H.264 MKV. However, if your source MKV was encoded at high quality (low CRF) or is lossless, the SWF may be smaller because FLV1 applies aggressive lossy compression regardless. The -q:v setting is the primary lever for controlling SWF output size.

Technical Notes

The SWF container's video codec support is limited to FLV1 (Sorenson Spark, a variant of H.263) and MJPEG — neither of which is commonly found in MKV source files, making a full video re-encode mandatory for every MKV-to-SWF conversion. FLV1 was designed for early 2000s internet video delivery and lacks modern compression techniques like B-frames (in its most compatible form) and advanced motion estimation, resulting in poor quality-to-size ratios compared to any codec typically found in an MKV. The audio side fares better: MP3 via LAME is a mature, well-understood codec, and the LAME encoder produces solid quality at 128k and above. Metadata such as title, artist, and encoding date from the MKV container cannot be preserved in SWF, as the format has minimal standardized metadata support. SWF files also have no concept of multiple audio tracks or subtitle streams — the converter targets the first (default) video and audio stream in the MKV only. File size is controlled primarily by -q:v (1=best quality/largest file, 10=lowest quality/smallest file) rather than a target bitrate, so output size can vary significantly depending on source content complexity.

Related Tools