Convert MTS to FLV — Free Online Tool

Convert MTS files from Sony or Panasonic AVCHD camcorders into FLV format for web delivery, re-encoding the H.264 video and AC-3/AAC audio into a Flash-compatible container using H.264 and AAC. This is useful for publishing camcorder footage to legacy web players and platforms that still rely on Adobe Flash Video infrastructure.

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

MTS (AVCHD) wraps H.264 video and AC-3 or AAC audio inside an MPEG-2 Transport Stream container, which is designed for broadcast and camcorder recording rather than web playback. FLV is Adobe's Flash Video container, which supports H.264 video and AAC or MP3 audio but has no concept of transport stream packetization or multiple audio tracks. During this conversion, FFmpeg re-encodes the video using libx264 (even though both formats support H.264, the AVCHD stream must be rewrapped and the bitrate/profile re-targeted for web delivery) and re-encodes the audio to AAC at 128k. The MPEG-2 TS structure, any AC-3 surround audio tracks, and camcorder metadata embedded in the MTS container are discarded, as FLV supports only a single audio track and has no equivalent metadata scheme.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary. In the browser-based tool this runs via FFmpeg.wasm compiled to WebAssembly, so no files leave your machine; on the desktop it runs as a native command-line process.
-i input.mts Specifies the input AVCHD file in MPEG-2 Transport Stream format (.mts), as recorded by Sony or Panasonic camcorders. FFmpeg detects the H.264 video and AC-3 or AAC audio streams inside the TS container automatically.
-c:v libx264 Re-encodes the video stream using the libx264 encoder, producing H.264 video suitable for Flash Video playback. This is necessary because the AVCHD H.264 bitstream must be re-packetized from Annex B transport stream format into the AVCC format expected by the FLV container.
-c:a aac Re-encodes the audio to AAC using FFmpeg's native AAC encoder. This handles both AC-3 and AAC source audio from the MTS file, converting whatever audio track is present (including Dolby Digital surround) into stereo AAC compatible with the FLV container.
-crf 23 Sets the Constant Rate Factor for libx264 to 23, which is the default balanced quality setting. For high-motion camcorder footage such as sports or events, consider lowering this to 18–20 to better preserve the detail that AVCHD captured at its original high bitrate.
-b:a 128k Sets the AAC audio output bitrate to 128 kilobits per second. This is adequate for stereo speech and general video audio; if the original MTS recording was a music performance or high-fidelity stereo event, increase this to 192k or 256k for noticeably better audio quality in the FLV output.
output.flv Specifies the output filename and tells FFmpeg to use the FLV container format based on the .flv extension. The resulting file is a Flash Video file containing a single H.264 video track and a single AAC audio track, ready for use with Flash Player-based systems.

Common Use Cases

  • Publishing AVCHD camcorder footage to a legacy CMS or video portal that ingests FLV files for Flash Player-based streaming
  • Archiving event or wedding video recordings from a Sony Handycam or Panasonic HC camcorder into a format compatible with older Flash-based video editors
  • Preparing camcorder clips for upload to a corporate intranet video system built on Flash Video infrastructure before migrating to a modern format
  • Converting MTS footage for playback in older kiosk or digital signage systems that run Flash-based video players
  • Reducing the complexity of multi-track AVCHD recordings to a single-audio-track FLV for use in a Flash-based interactive presentation
  • Generating an FLV reference copy of camcorder footage for a client whose legacy review platform only accepts Flash Video files

Frequently Asked Questions

Yes. FLV only supports stereo AAC or MP3 audio and cannot carry AC-3 (Dolby Digital) tracks. FFmpeg will automatically re-encode the AC-3 audio from the MTS file to AAC stereo at 128k during conversion. If your MTS file has multiple audio tracks — common on some AVCHD camcorders — only the first track will be included in the output FLV, since FLV supports only a single audio stream.
This conversion always re-encodes the video — it is not a simple remux. Although both MTS and FLV can carry H.264 video, the AVCHD H.264 stream uses transport stream packetization and often High Profile settings optimized for camcorder recording rather than web delivery. FFmpeg rewraps and re-encodes the stream using libx264 with the Baseline or Main Profile appropriate for Flash Player compatibility, which changes the bitstream structure even if the codec name stays the same.
File size depends heavily on the CRF quality setting and the original MTS bitrate. AVCHD files are typically recorded at 17–28 Mbps. The default CRF 23 in this conversion will produce a noticeably smaller file — often 40–70% smaller — because CRF 23 targets a moderate quality level well below typical camcorder recording bitrates. If you want to preserve near-original quality, lower the CRF value (e.g., CRF 18), which will increase the output file size.
FLV is a legacy format tied to Adobe Flash Player, which reached end-of-life in December 2020. Modern browsers no longer support Flash natively, so FLV files cannot be played directly in a browser without a dedicated player application. If you are not locked into a system that specifically requires FLV, converting your MTS footage to MP4 (H.264) would give you far broader compatibility across devices, platforms, and video editors.
To adjust video quality, change the -crf value: lower numbers (e.g., -crf 18) produce higher quality and larger files, while higher numbers (e.g., -crf 28) produce smaller files with more compression. To change audio bitrate, replace -b:a 128k with your preferred value such as -b:a 192k for better audio fidelity or -b:a 96k to save space. For example: ffmpeg -i input.mts -c:v libx264 -c:a aac -crf 18 -b:a 192k output.flv
Yes. On Linux or macOS you can use a shell loop: for f in *.mts; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.mts}.flv"; done. On Windows Command Prompt: for %f in (*.mts) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.flv". The browser-based tool processes one file at a time, so the FFmpeg command is particularly valuable when you have a large batch of AVCHD clips from a camcorder.

Technical Notes

AVCHD (MTS) encodes video at High Profile H.264 with interlaced or progressive scan, commonly at 1080i or 1080p, and wraps it in an MPEG-2 Transport Stream that includes PAT/PMT tables, PCR timing, and multiple PID-separated streams. FLV is a much simpler container with no transport stream layer; it uses a tag-based structure where video and audio frames are interleaved sequentially. When FFmpeg muxes into FLV it must strip all TS-specific structure and re-packetize the H.264 NAL units into AVCC format (used by FLV/MP4) rather than Annex B (used by AVCHD). Camcorder-specific metadata embedded in the MTS file — such as shooting date, GPS coordinates, lens information, and scene detection markers — is not preserved in the FLV output, as FLV has no standardized metadata container for this kind of data. FLV also does not support chapters or subtitle streams, so any soft subtitles in the source MTS are silently dropped. If the source MTS uses interlaced 1080i video and you need progressive output, add -vf yadif to the command to deinterlace before encoding.

Related Tools