Convert M2TS to SWF — Free Online Tool
Convert M2TS Blu-ray and AVCHD video files to SWF (Shockwave Flash) format, re-encoding the video stream using the FLV1 (Sorenson Spark) codec and audio using MP3. This is a legacy conversion path useful for embedding high-definition source footage into older Flash-based web players or authoring tools that predate modern HTML5 video support.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your M2TS 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
M2TS files typically contain H.264 or MPEG-2 video and multi-channel audio (such as Dolby TrueHD, DTS-HD, or AC-3) wrapped in an MPEG-2 Transport Stream container. SWF is an Adobe Flash container that only supports the older FLV1 (Sorenson Spark) or MJPEG video codecs and MP3 or AAC audio. Because none of the M2TS codecs are compatible with SWF, this conversion requires full re-encoding of both streams — no stream copying is possible. The high-definition H.264 video is decoded and re-encoded to FLV1, which is a significantly older and less efficient codec, resulting in a notable reduction in visual quality relative to the source. Multi-channel audio from the M2TS (e.g., 5.1 surround) is downmixed and re-encoded to stereo MP3, and subtitle tracks — even though M2TS supports them — are dropped entirely since SWF has no subtitle support. The output file size will vary considerably depending on quality settings, but expect a different quality-to-size ratio than the original.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. In the browser-based version of this tool, FFmpeg runs via WebAssembly (FFmpeg.wasm) entirely within your browser — no data is sent to a server. On the desktop, this calls your locally installed FFmpeg binary. |
-i input.m2ts
|
Specifies the input file — an M2TS file, which is an MPEG-2 Transport Stream container typically holding H.264 or MPEG-2 video and multi-channel audio from a Blu-ray disc or AVCHD camcorder. FFmpeg will demux all streams (video, audio, subtitles) from this container before processing. |
-c:v flv1
|
Re-encodes the video stream using the FLV1 codec (Sorenson Spark), which is the primary video codec supported by the SWF container. Because the M2TS source uses H.264 or MPEG-2 — neither of which SWF can contain — full re-encoding is mandatory; stream copying is not possible here. |
-c:a libmp3lame
|
Re-encodes the audio stream using the LAME MP3 encoder, producing MP3 audio compatible with the SWF container. The M2TS source audio (often AAC, AC-3, DTS, or TrueHD) is fully decoded and re-encoded; any multi-channel surround layout will be downmixed to stereo since SWF supports only a single stereo audio track. |
-q:v 5
|
Sets the FLV1 video quality using a scale of 1 (highest quality, largest file) to 10 (lowest quality, smallest file). A value of 5 is the default balanced setting. Given that FLV1 is a much less efficient codec than the H.264 typically found in M2TS, a lower value like 2 or 3 is recommended if visual quality from a Blu-ray or AVCHD source is a priority. |
-b:a 128k
|
Sets the MP3 audio output bitrate to 128 kilobits per second, which is the default and provides acceptable stereo audio quality for most web playback scenarios. For voice-heavy content from camcorder footage, this is generally sufficient; for music-heavy Blu-ray content, 192k or 256k would better preserve fidelity. |
output.swf
|
Specifies the output filename with the .swf extension, telling FFmpeg to write a Shockwave Flash container file. FFmpeg uses this extension to automatically select the SWF muxer, which packages the FLV1 video and MP3 audio into a Flash-compatible binary file ready for use in Flash authoring environments or legacy Flash Player instances. |
Common Use Cases
- Embedding Blu-ray or AVCHD camcorder footage into a legacy Flash-based corporate intranet or e-learning platform that cannot be migrated to HTML5 video
- Providing video content for an older Flash-based multimedia kiosk or interactive CD/DVD-ROM authoring project that requires SWF-compatible video
- Archiving or referencing a Flash-era web project by converting modern Blu-ray source material into the SWF format the project was originally built around
- Supplying video assets to a Flash game or interactive application developer who needs FLV1-encoded video embedded in a SWF wrapper for ActionScript playback
- Downscaling and re-encoding AVCHD camcorder footage from a consumer HD camera to a Flash-compatible format for use in a legacy video player on an older website
Frequently Asked Questions
Yes, quality loss is substantial and unavoidable. M2TS sources commonly carry H.264 or MPEG-2 video at full HD (1080p or 720p) with highly efficient modern compression, while SWF's FLV1 (Sorenson Spark) codec is a much older, less efficient standard derived from H.263. Re-encoding HD content to FLV1 will introduce visible compression artifacts, reduced sharpness, and blocking, especially at the default quality setting. Additionally, any multi-channel surround audio in the M2TS will be downmixed to stereo MP3, losing spatial audio information. This conversion is best treated as a delivery or compatibility step, not a preservation step — always keep your original M2TS file.
No. SWF does not support subtitle tracks of any kind, so any subtitle or closed-caption streams present in the M2TS source will be silently discarded during conversion. If subtitles are required for your audience, they would need to be hardcoded (burned into the video frames) before or during the conversion, which would require additional FFmpeg filter options such as -vf subtitles=input.m2ts added to the command. The default conversion command does not do this.
FFmpeg will select the first audio stream in the M2TS file by default, which is typically the primary language track. SWF supports only a single audio track, so all additional audio streams are dropped. If you need a specific audio track (for example, a secondary language track), you can add -map 0:v:0 -map 0:a:1 to the FFmpeg command to explicitly select the second audio stream before the output filename.
Video quality in SWF output is controlled by the -q:v flag, which accepts values from 1 (best quality, largest file) to 10 (worst quality, smallest file), with 5 as the default. For example, changing it to -q:v 2 will produce a sharper FLV1-encoded video at the cost of a larger file. Audio bitrate is set with -b:a — for example, replacing 128k with 192k will produce higher-quality MP3 audio. Note that SWF's FLV1 codec has an inherent quality ceiling, so pushing -q:v to 1 on HD source material will still show compression artifacts compared to modern codecs.
The single-file command shown on this page can be turned into a batch process in a terminal. On Linux or macOS, you can use: for f in *.m2ts; do ffmpeg -i "$f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "${f%.m2ts}.swf"; done. On Windows Command Prompt: for %f in (*.m2ts) do ffmpeg -i "%f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "%~nf.swf". This is particularly useful if you have an AVCHD folder structure from a camcorder with multiple .m2ts clip files to process. The in-browser tool on this page processes one file at a time.
No. Adobe Flash Player reached end-of-life on December 31, 2020, and all major browsers (Chrome, Firefox, Edge, Safari) have permanently removed Flash plugin support. A SWF file converted from M2TS today cannot be played directly in a modern web browser without a standalone Flash Player emulator such as Ruffle. This conversion is therefore only practical for legacy playback environments, Flash authoring software (like Adobe Animate), or systems where Flash Player is still installed in an isolated context.
Technical Notes
The FLV1 (Sorenson Spark) codec embedded in SWF is an H.263-based codec developed in the early 2000s and has not been updated since. It lacks the modern encoding tools found in H.264 (the common video codec in M2TS files) such as CABAC entropy coding, B-frames with high reference counts, and advanced rate control, meaning the same visual quality requires considerably more bitrate in FLV1 than in H.264. The SWF container itself does not support chapters, so any chapter markers in the M2TS source are discarded. SWF also does not carry transparency (alpha channel) in video — though M2TS does not support transparency either, so this is not a concern for this conversion. The MP3 audio codec used in SWF output requires the audio sample rate to be one of the Flash-supported rates (5512, 11025, 22050, or 44100 Hz); FFmpeg will automatically resample if the M2TS source uses a non-standard rate such as 48000 Hz (common in broadcast and Blu-ray), which introduces a small additional quality reduction. The resulting SWF file embeds the video and audio data directly and is a self-contained binary; it cannot be easily re-edited without Flash authoring tools. For files larger than 1GB, the FFmpeg command displayed on this page can be run locally on the desktop where there are no file size constraints.