Convert SWF to DVR — Free Online Tool

Convert SWF Flash animations and multimedia files to DVR format using H.264 video encoding and AAC audio. This tool re-encodes the FLV1 or MJPEG video streams from legacy Flash content into a DVR-compatible H.264 stream, making archived Flash content accessible on digital video recorder systems.

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 contain vector graphics, animations, and multimedia streams encoded with Flash-era codecs — typically FLV1 (Sorenson Spark, a variant of H.263) for video and MP3 for audio. During conversion, FFmpeg decodes these streams and fully re-encodes the video using the libx264 H.264 encoder, replacing the outdated FLV1 codec with a modern, efficient codec that DVR systems expect. The audio is transcoded from MP3 to AAC, which offers better compression efficiency at equivalent bitrates. Because SWF can contain interactive and vector-based content that has no direct video equivalent, only the rasterized video and audio streams are extracted — interactive elements, ActionScript logic, and vector layers are rendered at their native frame size and captured as pixel video output.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg command-line tool, which handles all demuxing, decoding, re-encoding, and muxing for this SWF-to-DVR conversion pipeline.
-i input.swf Specifies the input SWF file. FFmpeg's SWF demuxer parses the Flash container to extract the embedded video stream (typically FLV1/H.263 or MJPEG) and audio stream (typically MP3) for processing.
-c:v libx264 Sets the video encoder to libx264, which re-encodes the FLV1 or MJPEG video from the SWF into H.264 — the codec expected by DVR format consumers and far more efficient and widely supported than the original Flash video codec.
-c:a aac Transcodes the audio from the SWF's native MP3 stream to AAC, which is the standard audio codec for DVR output and provides slightly better compression efficiency than MP3 at equivalent bitrates.
-crf 23 Sets the Constant Rate Factor for the libx264 encode to 23, the x264 default, which balances output file size and visual quality. Lower values (e.g., 18) yield higher quality and larger files; higher values (e.g., 28) reduce file size at the cost of additional compression artifacts on top of any quality loss already present in the source SWF.
-b:a 128k Sets the AAC audio output bitrate to 128 kilobits per second, matching a common quality tier for spoken word, animation soundtracks, and general-purpose audio typical in SWF content.
output.dvr Specifies the output filename with the .dvr extension, directing FFmpeg to mux the re-encoded H.264 video and AAC audio into the DVR container format.

Common Use Cases

  • Archiving legacy Flash-based training videos or corporate presentations from the pre-HTML5 era into a DVR-compatible format for long-term storage on digital video recorder appliances
  • Migrating Flash animation content captured from broadcast or educational platforms into a format ingestible by surveillance and broadcast DVR systems
  • Converting SWF-based video advertisements or motion graphics into DVR recordings for inclusion in broadcast playout archives
  • Preserving Flash game cutscenes or animated intros as standard H.264 video recordings that can be stored and reviewed on DVR hardware
  • Transferring SWF multimedia content from old web archives into DVR format for review on set-top box or closed-circuit television systems that lack Flash support
  • Re-encoding Flash-encoded security or instructional video content originally embedded in SWF wrappers into the H.264-based DVR format required by modern recording infrastructure

Frequently Asked Questions

No — DVR is a purely passive video recording format and has no capacity for interactivity, scripting, or vector logic. FFmpeg extracts only the rasterized video frames and audio streams from the SWF file. Any buttons, timeline controls, ActionScript behaviors, or vector-based animations will be rendered as flat pixel video, and all interactivity will be permanently lost in the conversion.
SWF files typically carry FLV1 (Sorenson Spark/H.263) or MJPEG video streams, neither of which is natively compatible with the DVR container format, which expects H.264. Because the codec must change, a full decode-and-re-encode pass with libx264 is required. This is not a lossless operation — each re-encode introduces some generation loss, so quality settings like CRF value matter for the output.
CRF (Constant Rate Factor) controls the quality of the libx264 encode on a scale from 0 (lossless) to 51 (worst quality), with 23 being the x264 default and a reasonable balance between file size and visual fidelity. To prioritize quality, lower the CRF value — for example, replace '-crf 23' with '-crf 18' for near-transparent quality. For smaller file sizes at reduced quality, use a higher value like '-crf 28'. This is especially relevant when archiving SWF content that was originally compressed with FLV1, since CRF 23 may not fully recover fine motion detail lost in the original Flash encoding.
SWF files commonly use MP3 audio via the libmp3lame codec, but the DVR format's default and most compatible audio codec is AAC. FFmpeg re-encodes the audio stream to AAC at 128k bitrate, which is roughly equivalent perceptual quality to 128k MP3 but with slightly better efficiency. If you specifically need MP3 audio in the output, you can modify the command to use '-c:a libmp3lame' instead of '-c:a aac'.
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}.dvr"; 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.dvr"'. This processes each SWF file in the current directory and outputs a corresponding DVR file with the same base filename.
FFmpeg will attempt to preserve the source frame rate and resolution from the SWF during re-encoding. However, SWF files can define content at unusual or non-standard frame rates (such as 12fps or 24fps) and arbitrary canvas sizes. If your DVR system has strict resolution or frame rate requirements, you can add flags like '-r 25' to force a specific frame rate or '-vf scale=1920:1080' to resize the output during conversion.

Technical Notes

SWF is a compound format that can contain vector instructions, bitmaps, audio, and embedded video streams in a single file — FFmpeg specifically targets the embedded video and audio streams and cannot interpret Flash's display list or vector rendering pipeline natively. The rasterization quality of any vector-based SWF content depends on FFmpeg's internal Flash demuxer, which may produce output at the SWF's declared stage dimensions (sometimes very small, like 320x240). DVR is a proprietary format with vendor-specific implementations, so while the H.264/AAC stream combination is standard, playback compatibility on specific DVR hardware or software depends on how strictly that system adheres to the underlying container spec. There is no metadata, chapter, subtitle, or multiple audio track support in either SWF or DVR in this conversion pipeline. Since both formats are lossy and a full transcode is required, the output will reflect double-generation compression loss — quality from the original SWF encode followed by the new x264 encode — making conservative CRF settings (18–23) advisable for archival purposes.

Related Tools