Convert MTS to SWF — Free Online Tool
Convert AVCHD camcorder footage (.mts) to SWF (Shockwave Flash) format, re-encoding the H.264 video to FLV1 (Sorenson Spark) and the AC-3/AAC audio to MP3 — all processed locally in your browser using FFmpeg.wasm. This niche conversion is useful for embedding legacy camcorder video into Flash-based web projects or older multimedia authoring tools that require SWF-compatible video streams.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MTS 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
MTS files use the MPEG-2 Transport Stream container with H.264 video and typically AC-3 or AAC audio — a broadcast-grade format designed for high-definition camcorder recording. SWF, by contrast, supports only older Flash-era codecs: FLV1 (Sorenson Spark, a lossy codec derived from H.263) for video and MP3 for audio. Because neither the video codec nor the audio codec is compatible between these two formats, a full re-encode is required for both streams. The H.264 video is decoded and re-encoded to FLV1, which results in some quality loss, particularly in fine detail and motion. The audio — whether it originated as AC-3 or AAC in the MTS file — is decoded and re-encoded to MP3 using the LAME encoder. The resulting SWF file contains a Flash Video stream that can be played in Flash Player or embedded in legacy Flash-based web pages.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — in the browser tool, this runs via FFmpeg.wasm (WebAssembly), executing the same command logic as desktop FFmpeg without any server upload. |
-i input.mts
|
Specifies the input AVCHD file in MPEG-2 Transport Stream format, which FFmpeg will demux to extract the H.264 video stream and AC-3 or AAC audio stream for re-encoding. |
-c:v flv1
|
Sets the video codec to FLV1 (Sorenson Spark / H.263+), the primary video codec supported by the SWF container — required because the source H.264 codec is not compatible with SWF's muxer. |
-c:a libmp3lame
|
Uses the LAME encoder to re-encode the audio (which may be AC-3 or AAC in the source MTS) to MP3, the standard audio format for Flash SWF video content and compatible with all Flash Player versions. |
-q:v 5
|
Sets the FLV1 video quality level on a scale of 1 (best quality, largest file) to 10 (lowest quality, smallest file); the default of 5 is a midpoint balance, but AVCHD source footage will still show visible degradation compared to the original H.264. |
-b:a 128k
|
Sets the MP3 audio bitrate to 128 kilobits per second, a standard quality level sufficient for voice and general camcorder audio content in a Flash SWF embed. |
output.swf
|
The output filename with the .swf extension, telling FFmpeg to use its SWF muxer to package the re-encoded FLV1 video and MP3 audio into a Shockwave Flash file. |
Common Use Cases
- Embedding camcorder footage into a legacy Flash-based website or e-learning course that was built with Adobe Flash/Animate and requires SWF video assets.
- Archiving or migrating an older multimedia presentation built in Flash that references video clips — converting raw MTS camcorder recordings to SWF-compatible video for integration.
- Supplying video content to an older kiosk or interactive display system that runs a Flash-based runtime and cannot decode H.264 MTS streams natively.
- Producing a low-resolution preview clip from camcorder footage in SWF format for review within legacy Flash-based project timelines or authoring environments.
- Converting MTS event footage to SWF for use in an older Flash-based photo/video gallery template from the mid-2000s era that only accepts SWF video inputs.
Frequently Asked Questions
Yes, and it is significant by modern standards. Your MTS file contains H.264 video, which is far more efficient than FLV1 (Sorenson Spark), the codec used in SWF. Re-encoding from H.264 to FLV1 will produce noticeably softer images with more blocking artifacts, especially in high-motion scenes from camcorder footage. The audio also undergoes a full re-encode from AC-3 or AAC to MP3. For archival purposes, always keep the original MTS file.
No. The SWF container only supports FLV1 (Sorenson Spark) and MJPEG for video, and MP3 or AAC for audio. H.264 playback in the Flash ecosystem was handled by the FLV container (not SWF directly) and required Flash Player 9 or later with specific licensing. FFmpeg's SWF muxer is limited to FLV1 and MJPEG, so a full re-encode from your MTS's H.264 stream is unavoidable.
Adjust the -q:v flag, which controls FLV1 video quality on a scale of 1 (best) to 10 (worst). The default is 5. To get higher quality at the cost of a larger file, lower the value — for example, use -q:v 2 for noticeably better detail retention in your camcorder footage. To reduce file size for a smaller SWF embed, raise it to -q:v 8 or higher, but expect visible blocking, especially in motion-heavy scenes.
MTS files from AVCHD camcorders are typically encoded at relatively high bitrates (17–24 Mbps for HD footage) using the very efficient H.264 codec. FLV1 is significantly less efficient than H.264, meaning that to achieve similar quality, it needs more data — so the SWF can sometimes be larger than expected. Conversely, if the default -q:v 5 setting produces a lower bitrate than your original MTS, the SWF may be smaller but with a visible quality reduction.
No. The SWF format does not support embedded metadata fields in the way that modern containers like MP4 or MKV do. Recording date, camera model, GPS coordinates, and other EXIF-style metadata stored in the MTS file will be lost during this conversion. If preserving that metadata matters, extract it from the MTS file separately before converting.
The single command shown converts one file at a time, but you can batch process on your desktop using a shell loop. On Linux or macOS, run: for f in *.mts; do ffmpeg -i "$f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "${f%.mts}.swf"; done. On Windows Command Prompt, use: for %f in (*.mts) do ffmpeg -i "%f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "%~nf.swf". The browser-based tool processes files individually.
Technical Notes
The FLV1 codec (also called Sorenson Spark or H.263+) was the original video codec for Flash Player before H.264 support was added in Flash Player 9. It uses a DCT-based compression scheme similar to MPEG-4 Part 2, but is considerably less efficient than the H.264 codec found in your source MTS files. At the default -q:v 5 setting, high-definition AVCHD footage will be noticeably downgraded — the SWF format also has practical resolution limits, and very high resolutions (1080p and above) may not render correctly in all Flash Player versions. The audio is re-encoded using LAME to produce MP3, which is well-supported across all Flash Player versions. SWF does not support multiple audio tracks, subtitles, or chapter markers, all of which may be present in a broadcast-standard MTS recording — these will be silently dropped during conversion. The SWF format is deprecated and Flash Player reached end-of-life in December 2020, so this conversion is primarily relevant for legacy archival or maintenance workflows rather than new production.