Convert SWF to M2TS — Free Online Tool
Convert SWF Flash animations and multimedia content to M2TS Blu-ray transport stream format using H.264 video and AAC audio — right in your browser. This conversion re-encodes FLV1 or MJPEG video from legacy Flash containers into broadcast-grade H.264, making old Flash content playable on modern Blu-ray-compatible players and editing software.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your SWF 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
SWF files encapsulate Flash-native video codecs (primarily FLV1, a variant of H.263, or MJPEG) along with MP3 or AAC audio inside Adobe's proprietary container. During conversion, FFmpeg demuxes the SWF container, extracts the raw video and audio streams, and fully re-encodes the video using libx264 (H.264) at CRF 23 — a quality-controlled lossy encode that produces far superior compression and compatibility compared to FLV1. The audio is transcoded to AAC at 128k. The resulting streams are then muxed into the MPEG-2 Transport Stream (.m2ts) container, which uses a packet-based structure designed for Blu-ray and AVCHD workflows. Because FLV1 and H.264 are fundamentally different codecs with no stream-copy path, full re-encoding is always required.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — the open-source multimedia processing engine that handles demuxing the SWF container, decoding FLV1/MJPEG video, and re-encoding everything into the M2TS output format. |
-i input.swf
|
Specifies the input SWF file. FFmpeg's SWF demuxer reads the Adobe Flash container and extracts any embedded video (typically FLV1 or MJPEG) and audio (MP3 or AAC) streams for processing. |
-c:v libx264
|
Re-encodes the video stream using the libx264 H.264 encoder, replacing the legacy FLV1 or MJPEG codec from the SWF source. H.264 is the standard video codec for AVCHD and Blu-ray-compatible M2TS files and offers dramatically better compression efficiency than FLV1. |
-c:a aac
|
Transcodes the audio stream to AAC using FFmpeg's native AAC encoder. Whether the SWF source uses MP3 (libmp3lame) or raw AAC, the output is standardized to AAC, which is the default and most compatible audio codec for the M2TS/AVCHD container. |
-crf 23
|
Sets the Constant Rate Factor for the libx264 encode to 23, which is the default quality level. This controls the quality-to-filesize tradeoff for the re-encoded H.264 stream — lower values produce higher quality larger files, which is especially relevant when archiving older FLV1-encoded Flash content. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second. This is a standard bitrate that matches or exceeds the typical audio quality found in SWF files, which commonly used MP3 at 64–128k, ensuring no perceptible audio quality regression in the output. |
output.m2ts
|
Specifies the output filename and triggers FFmpeg's M2TS muxer, which packages the H.264 video and AAC audio into a 192-byte MPEG-2 Transport Stream container with Blu-ray-compatible packet timestamps. |
Common Use Cases
- Archiving legacy Flash-based e-learning animations or training modules into a durable M2TS format compatible with professional video archives and Blu-ray authoring tools
- Importing old SWF promotional or product demo animations into Blu-ray disc authoring software (such as Adobe Encore or Sony Vegas) that accepts AVCHD/M2TS natively
- Converting Flash-encoded video content captured from older websites into M2TS for ingestion into broadcast or post-production pipelines that require MPEG Transport Stream input
- Preserving interactive or animated SWF presentations as a flat, universally playable HD video file before Flash Player support is fully removed from the environment
- Re-encoding SWF game cutscenes or animation sequences into M2TS for use on AVCHD camcorder-compatible devices or Blu-ray players that cannot interpret Flash formats
Frequently Asked Questions
No — M2TS is a passive video container with no support for interactivity, scripting, or vector graphics. FFmpeg renders the SWF's visual output as a rasterized video stream and discards all ActionScript interactivity, clickable elements, and vector animation data. What you get is a flat video recording of the SWF's visual content encoded in H.264.
Some SWF files rely on ActionScript to trigger animations or load external media assets that FFmpeg cannot execute or access. FFmpeg reads only the statically embedded video and audio streams within the SWF container. If the SWF's content is dynamically generated or depends on user interaction to play, FFmpeg may produce a very short or empty output. In these cases, a screen-capture approach may be more appropriate.
H.264 at CRF 23 will generally produce significantly better visual quality per bit than the FLV1 (H.263-based) codec typically used in SWF files. FLV1 is an older, less efficient codec prone to blockiness and color banding at moderate bitrates. The re-encode to libx264 will improve perceptual sharpness and compression efficiency, though any quality degradation already present in the source FLV1 stream cannot be recovered.
Yes — adjust the -crf value to control quality. CRF 23 is the default and a reasonable balance; lower values (e.g., -crf 18) produce higher quality at larger file sizes, while higher values (e.g., -crf 28) reduce file size at the cost of quality. The valid range for libx264 is 0 (lossless) to 51 (worst quality). For archival of Flash content you care about, -crf 18 is a good starting point.
M2TS with H.264 video and AAC audio is compliant with the AVCHD specification used by many Blu-ray players. However, consumer Blu-ray players are strict about stream parameters — the resolution, frame rate, and bitrate of the SWF source must fall within AVCHD-defined limits. SWF files often have unconventional resolutions or frame rates (e.g., 12fps Flash animations) that may not be accepted by standalone Blu-ray players without additional transcoding to a compliant profile.
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}.m2ts"; 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.m2ts". The browser-based tool processes one file at a time, so the FFmpeg desktop command is especially useful for batch workflows.
Technical Notes
SWF is a closed, Adobe-proprietary container that FFmpeg supports in read-only mode with limited compatibility — it can extract embedded FLV1 (Sorenson Spark / H.263 variant) or MJPEG video streams and MP3 or AAC audio, but cannot interpret ActionScript, vector graphics instructions, or dynamically loaded content. The conversion to M2TS requires a full transcode since FLV1 and H.264 share no stream-copy pathway. The M2TS container uses a 192-byte MPEG-2 Transport Stream packet structure (188 bytes of MPEG-TS plus a 4-byte Blu-ray timestamp header), which is well-suited for broadcast and disc applications but adds slight overhead compared to raw MP4. AAC audio is natively supported in M2TS and is the most compact high-quality option for this container. Note that M2TS does not support chapters, and while it supports multiple audio tracks and subtitles at the container level, these features are not applicable when converting from SWF, which supports neither. If the SWF source contains only audio with no video stream, the command will fail and the -vn flag would need to be substituted. Flash SWF files frequently use 12fps or 24fps timebases with non-standard resolutions; these are passed through as-is to the H.264 encoder, which may result in M2TS files that are technically valid but outside AVCHD compliance specs.