Convert SWF to RMVB — Free Online Tool

Convert SWF Flash animations and multimedia files to RMVB format, re-encoding the FLV1 or MJPEG video stream through H.264 (libx264) with AAC audio for efficient variable-bitrate compression. RMVB's variable bitrate engine pairs well with the mixed static and animated content typical of Flash files, allocating more bits to complex scenes and fewer to simple vector frames.

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

SWF files often contain video streams encoded with the FLV1 (Sorenson Spark) or MJPEG codec alongside MP3 audio. Because neither of these codecs is natively supported in the RMVB container, this conversion performs a full transcode: the video is decoded from FLV1/MJPEG and re-encoded using libx264 with a Constant Rate Factor of 23, while the audio is decoded from MP3 and re-encoded as AAC at 128k. The SWF's interactive ActionScript logic, vector drawing instructions, and any embedded timeline scripting cannot be preserved in a passive video container like RMVB — only the rendered audio and video tracks are extracted and written to the output file.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg command-line tool, which handles the demuxing of the SWF container, decoding of FLV1/MJPEG video and MP3 audio, re-encoding to H.264 and AAC, and muxing into the RMVB output container.
-i input.swf Specifies the input SWF file. FFmpeg uses its SWF demuxer to parse the file and locate embedded video (FLV1 or MJPEG) and audio (MP3 or AAC) elementary streams, ignoring ActionScript and vector drawing data.
-c:v libx264 Selects the libx264 encoder to re-encode the decoded video frames into H.264, the only video codec supported in this RMVB output configuration. H.264 offers substantially better compression than the FLV1 codec typically found in SWF files.
-c:a aac Encodes the audio track as AAC using FFmpeg's native AAC encoder, replacing the MP3 audio commonly embedded in SWF files with a more container-appropriate codec for this RMVB output.
-crf 23 Sets the Constant Rate Factor for the H.264 encoder to 23, which is the libx264 default and provides a good balance between visual quality and file size. Lower values (e.g., 18) increase quality and file size; higher values (e.g., 28) reduce both, which is useful when compressing simple Flash animations with large uniform color areas.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, which is generally sufficient to faithfully reproduce the MP3 audio tracks typical in SWF files, most of which were originally encoded at 128k or lower.
output.rmvb Specifies the output filename and triggers FFmpeg to use the RealMedia/RMVB muxer based on the .rmvb file extension, wrapping the H.264 video and AAC audio streams into the RMVB container.

Common Use Cases

  • Archiving old Flash-based educational animations or explainer videos before they become completely unplayable, preserving the visual content in a widely-decodable H.264 stream inside RMVB.
  • Distributing a Flash game cinematic or intro sequence through legacy peer-to-peer networks or media players (such as RealPlayer) that have strong RMVB support but cannot execute SWF content.
  • Converting a Flash-based product demo or marketing animation into a compressed video file small enough to share via older file-hosting platforms that still have established RMVB audiences.
  • Recovering video content embedded inside a SWF file — such as a music video or short film distributed as Flash — into a format playable on media centers and set-top boxes with RMVB codec support.
  • Batch-converting a library of legacy SWF training modules into RMVB for storage on network-attached storage systems used in regions where RMVB remains a common archival format.
  • Extracting the rendered output of a Flash animation to use as a reference video alongside its source files when handing off a project to a team that cannot run Flash Player.

Frequently Asked Questions

No. RMVB is a passive video container and has no concept of interactivity, scripting, or vector drawing commands. The conversion renders only the audio and video tracks that FFmpeg can decode from the SWF's embedded media streams — all ActionScript logic, button interactions, and timeline scripting are discarded. If your SWF relies heavily on user interaction to drive its content, the output video may be incomplete or show only a static frame.
FLV1 is a relatively low-quality codec by modern standards, so re-encoding to H.264 with CRF 23 will generally produce a cleaner-looking result at a similar or smaller file size. However, any artifacts already present in the FLV1 source — blockiness, color banding — will be baked into the H.264 output since FFmpeg decodes the compressed FLV1 stream before re-encoding. The conversion is generation-lossy, but H.264 at CRF 23 is efficient enough that it rarely introduces significant new artifacts.
SWF files can be surprisingly large because they embed raw or lightly compressed vector assets, fonts, audio, and sometimes multiple video segments alongside the ActionScript bytecode. RMVB with H.264 video is a highly optimized inter-frame video format that achieves strong compression using motion estimation and DCT — especially effective on the smooth gradients and limited motion common in Flash animations. It is normal to see significant size reductions, particularly for SWFs whose video content was encoded with the older, less efficient FLV1 codec.
The -crf 23 flag controls H.264 quality: lower values produce higher quality and larger files (e.g., -crf 18 for near-visually-lossless output), while higher values increase compression at the cost of quality (e.g., -crf 28 for smaller files). For audio, replace 128k in -b:a 128k with a higher value like 192k or 256k for better fidelity, or 96k to reduce file size. For example: ffmpeg -i input.swf -c:v libx264 -c:a aac -crf 18 -b:a 192k output.rmvb
Yes. On Linux or macOS you can use a shell loop: for f in *.swf; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.swf}.rmvb"; done. On Windows Command Prompt, use: for %f in (*.swf) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.rmvb". The browser-based tool on this page processes files one at a time, so the desktop FFmpeg command is the recommended approach for bulk conversions.
RMVB files containing H.264 video and AAC audio — as produced by this command — are playable in VLC Media Player, PotPlayer, KMPlayer, and most media players that support the RealMedia container with third-party codec packs. RealPlayer itself may struggle with H.264-inside-RMVB since its native RMVB support is optimized for RealVideo codecs; VLC is the most reliable cross-platform choice. Note that modern browsers and mobile platforms generally do not support RMVB natively.

Technical Notes

FFmpeg's SWF demuxer extracts embedded video and audio elementary streams from the SWF container but does not render the Flash timeline — meaning only media data directly encoded as FLV1 or MJPEG video streams and MP3 or AAC audio tracks are accessible. SWFs that rely entirely on vector drawing commands with no embedded video stream may produce an empty or very short output file. The RMVB container, while named for RealNetworks' variable bitrate technology, can technically wrap H.264 and AAC streams via FFmpeg, though this is a non-standard pairing that most RealNetworks software will not recognize correctly — the output is best treated as an H.264/AAC stream in an RMVB wrapper for use with third-party players like VLC. No subtitle tracks, chapter markers, or multiple audio tracks are supported by either format in this conversion. Transparency is not preserved (SWF alpha channels are flattened to a black or white background during decoding). If your SWF contains MJPEG video rather than FLV1, expect larger intermediate decoded frames during processing, which may increase conversion time in the browser-based tool for files near the 1GB limit.

Related Tools