Convert MOV to SWF — Free Online Tool

Convert MOV files to SWF format using the FLV1 (Sorenson Spark) video codec and MP3 audio — encoding your QuickTime footage into the legacy Adobe Flash container format. This tool runs entirely in your browser via WebAssembly, so your files never leave your device.

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

MOV is Apple's QuickTime container, typically carrying H.264 or H.265 video alongside AAC audio. SWF (Small Web Format) is a fundamentally different beast — a legacy Adobe Flash format designed for animated vector graphics and web-embedded video. Converting MOV to SWF requires full re-encoding: the video stream is transcoded from its source codec (e.g., H.264) into FLV1 (Sorenson Spark), a lossy codec that Flash Player natively supports, while the AAC audio is re-encoded into MP3 using the LAME encoder. There is no lossless path here — both the video and audio undergo generational quality loss. The resulting SWF embeds the video data directly into the Flash container, which is a very different structure from MOV's track-based architecture. Features present in the MOV file — such as multiple audio tracks, chapter markers, subtitle tracks, and transparency — are all dropped during this conversion, as the SWF format does not support them.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine that powers this conversion. In the browser tool, this runs as a WebAssembly build (FFmpeg.wasm); on your desktop, this calls your locally installed FFmpeg binary.
-i input.mov Specifies the input file as a MOV (QuickTime) container. FFmpeg will detect the container format and probe the internal codec streams — typically H.264 or H.265 video and AAC audio — before applying the output encoding parameters.
-c:v flv1 Encodes the video stream using the FLV1 codec (Sorenson Spark / H.263), which is the native video codec for SWF files and is required for Flash Player compatibility. Your MOV's source video codec — whether H.264, H.265, or ProRes — is fully re-encoded into this older, less efficient format.
-c:a libmp3lame Re-encodes the audio stream to MP3 using the LAME encoder. SWF files with FLV1 video require MP3 audio — the MOV's native AAC audio cannot be stream-copied and must be fully transcoded. LAME is the standard high-quality open-source MP3 encoder.
-q:v 5 Sets the FLV1 video quality using a global quality scale from 1 (best quality, largest file) to 10 (worst quality, smallest file). A value of 5 represents a balanced midpoint suitable for most legacy web video use cases; lower values like 2 or 3 yield noticeably sharper output at the cost of file size.
-b:a 128k Sets the MP3 audio bitrate to 128 kilobits per second, which is a standard quality level for voice and general-purpose audio in Flash video. For music-heavy content you might increase this to 192k; for voice-only content, 96k is often sufficient and reduces file size.
output.swf Specifies the output filename and triggers FFmpeg to use the SWF muxer based on the .swf extension. The resulting file is a self-contained SWF container embedding the FLV1 video and MP3 audio streams for playback in Flash Player or compatible emulators.

Common Use Cases

  • Restoring or updating a legacy website that originally used Flash-embedded video and requires SWF files to maintain its original playback behavior in archived or emulated environments.
  • Archiving old Flash-era multimedia projects by converting modern MOV source footage into SWF for compatibility with Adobe Flash Professional or Animate project files.
  • Preparing video content for playback in industrial or kiosk systems that run an older embedded Flash Player runtime and cannot be updated to support modern formats.
  • Converting MOV footage captured on a Mac for inclusion in a legacy e-learning course built on an older Flash-based authoring platform like Adobe Captivate or Articulate Presenter.
  • Testing Flash Player emulators such as Ruffle by generating real SWF video files from MOV source footage to verify emulator behavior and codec compatibility.
  • Reproducing or debugging legacy Flash video pipelines where a known-good SWF output from a MOV source is needed as a reference artifact.

Frequently Asked Questions

Yes — this conversion always involves lossy re-encoding for both video and audio. Your MOV's video stream (typically H.264 or H.265) is transcoded into FLV1 (Sorenson Spark), which is a significantly older and less efficient codec than H.264. This means you'll see more compression artifacts at equivalent bitrates. Similarly, AAC audio is re-encoded into MP3. The default settings (-q:v 5 for video, 128k for audio) produce acceptable quality for most legacy use cases, but the output will never match the visual fidelity of the source MOV.
No. The SWF format supports only a single video stream and a single audio stream, and it has no concept of chapter markers or subtitle tracks. If your MOV file contains multiple audio tracks, only the first (default) audio track will be encoded into the SWF. Any subtitle tracks, chapter metadata, or transparency information in the MOV will be silently discarded during conversion. There is no workaround within the SWF format itself — these are fundamental container-level limitations.
MOV supports alpha channel transparency (commonly used in professional video workflows with ProRes 4444 or PNG-encoded video), but FLV1 — the video codec used in SWF — does not support an alpha channel at all. Even though SWF as a format can render transparent vector graphics, it cannot embed a video stream with per-pixel transparency. Any transparent regions in your source MOV will be rendered as solid black in the SWF output. If transparency is essential, SWF is not an appropriate target format.
No. All major browsers (Chrome, Firefox, Safari, Edge) removed Adobe Flash Player support in 2020-2021, and Adobe itself ended Flash Player's life in December 2020. SWF files produced by this tool will not play natively in any modern browser. Playback options include the open-source Ruffle emulator (available as a browser extension or self-hosted), standalone legacy Flash Player builds, or applications like BlueMaxima's Flashpoint archive environment. This tool is intended for archival, legacy system maintenance, or emulator testing — not live web publishing.
The video quality is controlled by the -q:v flag, which accepts values from 1 (highest quality, largest file) to 10 (lowest quality, smallest file). The default is 5. For example, to get higher quality output, change the command to: ffmpeg -i input.mov -c:v flv1 -c:a libmp3lame -q:v 2 -b:a 128k output.swf. Note that even at -q:v 1, the FLV1 codec will produce noticeably lower quality than the H.264 source due to the codec's inherent inefficiency compared to modern encoders.
FFmpeg processes one input file at a time with this command, but you can batch convert using a shell loop. On Linux or macOS, run: for f in *.mov; do ffmpeg -i "$f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "${f%.mov}.swf"; done. On Windows Command Prompt, use: for %f in (*.mov) do ffmpeg -i "%f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "%~nf.swf". This is particularly useful for the desktop FFmpeg command when processing large collections of files or files over 1GB that exceed the browser tool's limit.

Technical Notes

The FLV1 codec (also known as Sorenson Spark or H.263) was the original video codec used in Flash Player before FLV/F4V adopted H.264 in Flash Player 9. It uses a discrete cosine transform (DCT) similar to MPEG-4 Part 2 but is considerably less efficient than H.264 or H.265, meaning you need higher bitrates to achieve equivalent visual quality. The -q:v parameter in this context is a global quality scale specific to FLV1, unlike H.264's CRF scale — lower numbers mean better quality. Audio is encoded using LAME MP3; the SWF format specifically requires MP3 audio (not AAC) when using FLV1 video, which is why the MOV's native AAC audio must be re-encoded rather than copied. File size for the SWF output will vary significantly depending on the source MOV's duration and motion complexity, but expect the SWF to be comparable to or larger than an equivalent-quality FLV file. One practical limitation: very high-resolution MOV files (4K or higher) are technically encodable to SWF, but Flash Player itself had practical resolution limits and performance constraints that make playback of high-resolution SWF video problematic even in emulators.

Related Tools