Convert FLV to SWF — Free Online Tool

Convert FLV files to SWF format directly in your browser, re-encoding video with the FLV1 (Sorenson Spark) codec and audio with MP3 — the native codec pairing for legacy Adobe Flash playback. This tool is particularly useful for embedding video content into SWF-based Flash projects that require FLV1-encoded streams.

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

Unlike a simple remux, converting FLV to SWF requires full re-encoding of both streams. The input FLV typically contains H.264 (libx264) video and AAC audio — modern codecs not natively embedded in SWF containers. FFmpeg transcodes the video to FLV1 (Sorenson Spark), a codec developed specifically for Flash Player, and re-encodes the audio to MP3 using the LAME encoder, since SWF's native audio format is MP3 rather than AAC. The resulting SWF file wraps these streams in the Shockwave Flash container, which Flash Player can interpret directly for playback or as a media source within larger Flash applications.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg transcoding engine. In this browser-based tool, it runs via FFmpeg.wasm (WebAssembly), so no file is uploaded to a server — the same command can also be run in a local terminal with a standard FFmpeg installation.
-i input.flv Specifies the input FLV file. FFmpeg reads the container and detects the enclosed streams — typically H.264 video and AAC audio — which will both require re-encoding since neither codec is native to the SWF container format.
-c:v flv1 Sets the output video codec to FLV1 (Sorenson Spark), the native embedded video codec for the SWF container. This re-encodes the source H.264 video into the older Sorenson Spark format required for SWF-embedded video playback in Flash Player.
-c:a libmp3lame Re-encodes the audio using the LAME MP3 encoder, transcoding it from the source AAC stream. MP3 is the native audio format for SWF containers and is required for compatibility with Flash Player's embedded audio playback.
-q:v 5 Sets the FLV1 video quality on a scale of 1 (best quality, largest file) to 10 (lowest quality, smallest file). A value of 5 is a balanced default; lower values are recommended if the source FLV contains high-motion or high-detail content that degrades noticeably under Sorenson Spark compression.
-b:a 128k Sets the MP3 audio bitrate to 128 kilobits per second. This is a widely used standard for general-purpose audio in legacy Flash content — sufficient for voice and mixed media, though 192k or 256k is preferable if the source FLV contains high-quality music or stereo audio.
output.swf Specifies the output filename and tells FFmpeg to write the result in the SWF (Shockwave Flash) container format. The .swf extension is what triggers FFmpeg to mux the FLV1 video and MP3 audio streams into the SWF wrapper.

Common Use Cases

  • Embedding a recorded Flash-era presentation or tutorial video into a legacy SWF-based e-learning application that only accepts FLV1-encoded streams
  • Preparing video content for inclusion in an Adobe Animate (formerly Flash Professional) project that targets SWF output for archival or internal use
  • Migrating a library of FLV video assets into self-contained SWF files for use in older Flash-based kiosk or interactive display systems that cannot read raw FLV
  • Archiving Flash-era web video content in SWF format to preserve the original playback context alongside the video data
  • Re-encoding a modern H.264 FLV file into a Sorenson Spark SWF for compatibility with Flash Player 6-era projectors or standalone Flash executables
  • Creating SWF video assets for import into legacy Flash game engines or multimedia authoring tools that require SWF-wrapped video rather than bare FLV containers

Frequently Asked Questions

Yes, this conversion involves lossy re-encoding on both video and audio tracks. The input FLV's H.264 video is transcoded to FLV1 (Sorenson Spark), which is a significantly older and less efficient codec — you can expect some reduction in visual quality, particularly in fine detail and fast motion, compared to the source. The AAC audio is also re-encoded to MP3 at 128k. For critical archival work, use the lowest available -q:v value (1) to maximize FLV1 quality.
No. Adobe Flash Player reached end-of-life in December 2020, and all major browsers have removed Flash support. The output SWF is intended for use within legacy Flash Player environments, standalone Flash projectors, or as an asset inside Flash/Animate authoring tools. If you need web-compatible video, converting FLV to MP4 is a better choice.
SWF's native embedded video codec is FLV1 (Sorenson Spark), standardized for Flash Player versions 6 and later. While Flash Player 9+ can play H.264 video, it does so via external FLV/F4V references rather than embedding it inside a SWF container. For true SWF-embedded video — as opposed to externally loaded streams — FLV1 is the appropriate and most compatible choice.
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. To maximize quality, run: ffmpeg -i input.flv -c:v flv1 -c:a libmp3lame -q:v 1 -b:a 128k output.swf. To reduce file size for bandwidth-constrained deployments, increase -q:v to 7 or 8. Note that FLV1 quality at any setting will be lower than the H.264 source due to codec generation differences.
On Linux or macOS, use a shell loop: for f in *.flv; do ffmpeg -i "$f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "${f%.flv}.swf"; done. On Windows Command Prompt, use: for %f in (*.flv) do ffmpeg -i "%f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "%~nf.swf". This processes every FLV in the current directory and outputs a matching SWF file for each.
No. SWF does not support embedded metadata tags, chapter markers, or multiple audio tracks in the way that modern containers like MKV or MP4 do. Any metadata present in the source FLV — such as title, duration hints, or cue points — will not be carried over into the SWF container. If metadata preservation is important, consider keeping the FLV format or converting to MP4 instead.

Technical Notes

FLV1 (Sorenson Spark) is a DCT-based codec similar in design to MPEG-4 Part 2, but predates and underperforms modern codecs like H.264 — the input FLV's likely default codec. As a result, this transcode is a downgrade in compression efficiency: the SWF output will typically be larger than or equal in size to the source FLV at comparable perceptual quality. The -q:v parameter for FLV1 is a global quality scale, not a constant rate factor like H.264's -crf, so quality-to-bitrate behavior is less predictable. Audio is re-encoded from AAC to MP3 via libmp3lame; the 128k default is adequate for voice and general content but consider 192k for music-heavy material. SWF does not support transparency (no alpha channel video), subtitles, chapters, or multiple audio tracks, so any of these present in the source FLV will be silently dropped. The maximum SWF file size that legacy Flash Player handles reliably is around 2GB, though practical SWF video files are typically kept well under 100MB for performance reasons. This conversion is best suited for compatibility and archival workflows targeting Flash-era toolchains, not for general-purpose video distribution.

Related Tools