Compress MTS Online — Free File Size Reducer

Compress MTS files directly in your browser by re-encoding the H.264 video stream with a higher CRF value, reducing file size while keeping the AVCHD-compatible MPEG-2 Transport Stream container. Ideal for shrinking large camcorder footage from Sony or Panasonic devices without changing the file format.

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 files from AVCHD camcorders typically contain H.264 video and AC-3 or AAC audio inside an MPEG-2 Transport Stream container. This tool re-encodes both streams: the video is decoded from its original H.264 bitrate and re-encoded using libx264 with a CRF of 23, which applies perceptual compression to discard visual data the human eye is least likely to notice. The audio is re-encoded to AAC at 128k, which is virtually identical to the original camcorder audio for most listeners. Unlike a simple remux, this is a full transcode — the output is a smaller MTS file that remains playable on most AVCHD-aware devices and software, but the original high-bitrate AVCHD data is not preserved.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which is running here as a WebAssembly binary (FFmpeg.wasm) entirely within your browser — no files are sent to a server.
-i input.mts Specifies the input AVCHD MTS file recorded by your Sony or Panasonic camcorder, containing H.264 video and AC-3 or AAC audio inside an MPEG-2 Transport Stream.
-c:v libx264 Re-encodes the video stream using the libx264 H.264 encoder, replacing the original high-bitrate AVCHD H.264 stream with a more efficiently compressed version at the quality level set by CRF.
-crf 23 Sets the Constant Rate Factor for libx264 to 23, the default value, which targets a perceptually transparent quality level for most camcorder footage while achieving meaningful file size reduction. Lower values (e.g., 18) mean better quality and larger files; higher values (e.g., 30) mean smaller files with more visible compression.
-c:a aac Re-encodes the audio stream to AAC using FFmpeg's built-in AAC encoder, ensuring compatibility with the AVCHD MTS container. If the source has AC-3 audio (common on many AVCHD camcorders), this transcodes it to the more universally supported AAC format.
-b:a 128k Sets the output AAC audio bitrate to 128 kilobits per second, which is sufficient for stereo camcorder audio and matches the typical quality of the original AVCHD audio track without adding unnecessary file size.
output.mts Writes the result to a new MTS file, preserving the MPEG-2 Transport Stream container format so the compressed file remains recognizable as AVCHD-style footage by editing software and media players.

Common Use Cases

  • Archiving a large collection of Sony or Panasonic camcorder clips to a smaller hard drive without changing the .mts file format that your editing software already recognizes
  • Reducing the file size of raw AVCHD footage before sending clips to a client or collaborator via a file-sharing service with storage limits
  • Trimming down camcorder recordings of family events or travel to a manageable size for long-term NAS or cloud storage while retaining MTS compatibility
  • Compressing high-bitrate 1080i or 1080p AVCHD footage from a camcorder so it streams smoothly over a local network to a media player that supports MTS
  • Reducing the storage footprint of interview or documentary B-roll footage that doesn't need to retain the original 24–28 Mbps AVCHD bitrate for final editing
  • Pre-compressing MTS clips before importing into an older editing workstation that struggles with the high bitrate of native AVCHD recordings

Frequently Asked Questions

At the default CRF 23 setting, the quality reduction is generally imperceptible for typical camcorder footage such as family events, travel, or interviews. However, because the original AVCHD H.264 stream is already lossy, re-encoding it introduces a second generation of compression artifacts — fast motion, fine detail like foliage, and high-contrast edges are where you're most likely to notice degradation. If quality is critical, use a lower CRF value (e.g., 18) at the cost of a larger output file.
AVCHD camcorders typically record at 17–28 Mbps. At CRF 23 with libx264, the output bitrate is highly content-dependent, but you can often expect a 40–70% reduction in file size for typical camcorder footage. Static scenes with little motion will compress far more aggressively than action-heavy footage. The audio savings are modest since AAC at 128k is already compact.
The output file uses the MPEG-2 Transport Stream container with H.264 video and AAC audio, which is the standard AVCHD structure. Most editing software that reads MTS files (such as Adobe Premiere, Final Cut Pro, and DaVinci Resolve) will open the compressed output without issue. However, playback on the camcorder itself or strict AVCHD hardware players may be less reliable, since some devices enforce specific bitrate, profile, or level constraints defined by the AVCHD specification — the re-encoded file may not meet those exact parameters.
The CRF value controls the quality-to-size tradeoff. In the command 'ffmpeg -i input.mts -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mts', change '-crf 23' to a higher number for a smaller file (e.g., '-crf 30' or '-crf 35') or a lower number for better quality (e.g., '-crf 18'). The CRF scale for libx264 runs from 0 (lossless) to 51 (worst quality), with 18–28 being the practical range for most use cases.
Yes, on the command line you can use a shell loop to process multiple files. On Linux or macOS: 'for f in *.mts; do ffmpeg -i "$f" -c:v libx264 -crf 23 -c:a aac -b:a 128k "compressed_$f"; done'. On Windows Command Prompt: 'for %f in (*.mts) do ffmpeg -i "%f" -c:v libx264 -crf 23 -c:a aac -b:a 128k "compressed_%f"'. This is especially useful for shrinking an entire SD card dump of AVCHD clips in one pass.
The default command maps only the first video and first audio stream, so additional audio tracks (e.g., a second microphone channel recorded by some camcorders) and embedded subtitles will be dropped. To retain all streams, add '-map 0' before the output filename in the command: 'ffmpeg -i input.mts -map 0 -c:v libx264 -crf 23 -c:a aac -b:a 128k output.mts'. Note that AC-3 audio tracks will still be re-encoded to AAC since that is the configured audio codec.

Technical Notes

AVCHD MTS files are recorded at fixed bitrates (typically 9, 17, or 24 Mbps depending on the camcorder mode) with H.264 video in High Profile at Level 4.0 or 4.1, and AC-3 or AAC audio. When compressing MTS to MTS, libx264 with CRF encoding abandons the fixed-bitrate structure in favor of constant perceptual quality, which is more efficient but may produce output that doesn't conform to strict AVCHD profile/level specifications required by some hardware players. The MPEG-2 Transport Stream container is preserved, but AVCHD-specific metadata such as clip information files (CLIPINF), playlist structures (BDMV-style directories), and camcorder-written timestamps stored in side-car files are not part of the MTS stream itself and will not be present in the output. The tool does not support chapter markers (AVCHD chapters are stored externally). Multiple audio tracks are supported by the format and can be retained with the appropriate FFmpeg map flags. Because this is a lossy-to-lossy transcode, it is recommended to keep the original MTS files as a master archive and use the compressed output only for distribution or storage-optimized copies.

Related Tools