Convert WMV to SWF — Free Online Tool
Convert WMV files to SWF (Shockwave Flash) format directly in your browser, re-encoding the Microsoft MPEG-4 video stream to the FLV1 (Sorenson H.263) codec and the WMA audio to MP3 — the two codecs historically required for Flash Player playback. No file is uploaded to any server; processing happens entirely on your device via FFmpeg.wasm.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your WMV 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
WMV files use Microsoft's proprietary ASF container with video encoded in MS-MPEG-4 (msmpeg4 or msmpeg4v2) and audio in WMA (wmav2). Neither codec is compatible with the SWF/Flash runtime, so this conversion requires a full transcode of both streams. The video is re-encoded from MS-MPEG-4 to FLV1 (Sorenson H.263), the codec natively supported by the SWF container and Adobe Flash Player. The WMA audio is simultaneously re-encoded to MP3 using the LAME encoder, which is the standard audio format for SWF video content. Because both streams must be re-encoded from scratch, processing is more CPU-intensive than a simple remux, and quality is controlled by the quantizer scale for video (-q:v) and bitrate for audio (-b:a). The output is a self-contained SWF file that embeds the video data in a format Flash Player can interpret.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary. In this tool, FFmpeg runs entirely inside your browser via WebAssembly (FFmpeg.wasm), so no desktop installation is required — but the same command works identically in a locally installed FFmpeg for files over 1GB or batch processing. |
-i input.wmv
|
Specifies the input file in WMV (Windows Media Video) format, which uses the ASF container with MS-MPEG-4 video and WMA audio. FFmpeg automatically detects the ASF container and demuxes both streams for re-encoding. |
-c:v flv1
|
Instructs FFmpeg to re-encode the video stream using the FLV1 codec (Sorenson H.263), which is the standard video codec for SWF files and is natively supported by the Adobe Flash Player runtime. This is a full transcode from MS-MPEG-4, not a stream copy. |
-c:a libmp3lame
|
Re-encodes the WMA audio stream to MP3 using the LAME encoder. MP3 is the audio format required for SWF-embedded video, as WMA is not supported by the Flash Player or the SWF muxer. |
-q:v 5
|
Sets the FLV1 video quality using a quantizer scale from 1 (best quality, largest file) to 10 (worst quality, smallest file). A value of 5 strikes a balance between visual fidelity and file size appropriate for web delivery via Flash. |
-b:a 128k
|
Sets the MP3 audio bitrate to 128 kilobits per second, which provides CD-quality stereo audio and is the widely accepted standard for web audio in Flash video content. Increase to 192k or 256k if the source WMV has high-quality audio worth preserving. |
output.swf
|
Defines the output filename and triggers FFmpeg's SWF muxer based on the .swf extension. FFmpeg packages the re-encoded FLV1 video and MP3 audio into a valid SWF container that Flash Player or compatible runtimes can parse and play. |
Common Use Cases
- Embedding legacy WMV training or corporate videos into older web portals or CMS platforms that relied on Flash-based video players before HTML5 was widely adopted.
- Archiving or migrating Windows Media content into SWF format to preserve compatibility with Flash-based e-learning systems (e.g., legacy SCORM courses) that cannot ingest WMV directly.
- Converting WMV screen recordings or presentations into SWF for embedding in older Flash-based slide decks or interactive Captivate/Articulate projects.
- Preparing WMV video content for playback on embedded kiosk systems or industrial displays that run a Flash runtime environment and do not support the ASF/WMV format.
- Re-packaging WMV clips from Windows Media Player libraries into SWF for use in legacy ActionScript-driven web applications that reference FLV1-encoded SWF video.
- Testing or debugging Flash Player video decoding pipelines by supplying a known-good FLV1/MP3 SWF produced from a reference WMV source file.
Frequently Asked Questions
Yes — this is a lossy-to-lossy transcode, meaning quality is lost at both ends. Your WMV's MS-MPEG-4 video must be fully re-encoded to FLV1 (Sorenson H.263), an older and less efficient codec than modern H.264 or even MS-MPEG-4. Similarly, the WMA audio is re-encoded to MP3. At the default settings (-q:v 5 and -b:a 128k), quality is reasonable for web playback, but you will see some generational loss compared to the original WMV. If quality is critical, use a lower -q:v value (1 is best quality, 10 is worst) and a higher -b:a such as 192k or 256k.
The SWF container's video playback model is tied to the Flash Player runtime, which natively supports FLV1 (Sorenson H.263) and MJPEG for embedded video streams. Modern codecs like H.264 are supported in FLV containers played via Flash, but are not broadly supported when embedded directly inside an SWF wrapper. FLV1 remains the safest and most compatible choice for SWF video, which is why it is used as the default codec here.
No. The SWF format only supports a single audio track, so if your WMV source contains multiple audio streams (e.g., multiple language tracks), only the default audio stream will be included in the SWF output. If you need a specific non-default audio track, you can modify the FFmpeg command locally by adding -map 0:a:1 (or the appropriate stream index) before the output filename to select a particular audio stream.
None of these are preserved in the SWF output. WMV files can carry metadata and sometimes subtitle streams in the ASF container, but the SWF format does not support subtitles or chapter markers, and embedded metadata is not transferred during this transcode. If subtitles are important, you should burn them into the video before conversion using FFmpeg's subtitles or ass video filter, or handle them separately.
The video quality is controlled by the -q:v flag, which sets a quantizer scale for the FLV1 encoder. The scale runs from 1 (highest quality, largest file) to 10 (lowest quality, smallest file), with 5 as the default. For example, replacing '-q:v 5' with '-q:v 2' will produce noticeably sharper video at the cost of a larger SWF file. For audio, replace '-b:a 128k' with '-b:a 192k' or '-b:a 256k' to increase MP3 audio fidelity.
Yes. On Linux or macOS you can use a shell loop: 'for f in *.wmv; do ffmpeg -i "$f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "${f%.wmv}.swf"; done'. On Windows Command Prompt, use: 'for %f in (*.wmv) do ffmpeg -i "%f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "%~nf.swf"'. The in-browser tool processes one file at a time, so the local FFmpeg command is especially useful for batch jobs or files over 1GB.
Technical Notes
The WMV-to-SWF conversion involves two distinct codec families with very different design philosophies. MS-MPEG-4 (used in WMV) is a Microsoft-modified variant of the MPEG-4 Part 2 standard, while FLV1 is based on Sorenson H.263, a much older and simpler codec originally designed for low-bandwidth video conferencing. As a result, FLV1 is notably less efficient than MS-MPEG-4 at equivalent bitrates — expect SWF files to be larger or lower quality than the WMV source at the same bitrate. The -q:v parameter for FLV1 in FFmpeg is a variable quantizer scale (not a CRF), where lower numbers mean finer quantization and better quality. The ASF container's special flags (-f asf) are not needed for the output since SWF has its own muxer. DRM-protected WMV files cannot be processed — FFmpeg cannot decrypt Microsoft PlayReady or Windows Media DRM, so the conversion will fail on protected content. The SWF format also imposes a single audio track limitation and has no subtitle or chapter support, so any of those tracks in the source WMV are silently dropped. Finally, note that SWF as a delivery format is effectively end-of-life following Adobe's deprecation of Flash Player in 2020; modern browsers will not play SWF files natively without a third-party runtime such as Ruffle.