Convert WebM to MTS — Free Online Tool
Convert WebM files (VP9 video, Opus audio) to MTS format using H.264 video and AAC audio — the AVCHD standard used by Sony and Panasonic camcorders. This transcoding process makes web-sourced video compatible with professional camcorder workflows, NLE software expecting broadcast-style MPEG Transport Stream files, and hardware players that don't support VP9 or Opus.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your WebM 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
This conversion involves full transcoding of both the video and audio streams — nothing is simply copied or remuxed. The VP9 video track from the WebM container is decoded and re-encoded as H.264 (libx264) inside an MPEG-2 Transport Stream (.mts) container, which is the AVCHD standard. The Opus audio track is simultaneously decoded and re-encoded as AAC at 128k bitrate. Because MTS is a broadcast-oriented transport stream format rather than a general-purpose container, it imposes specific structural requirements — notably, it does not support chapter markers or transparency (alpha channel), so any transparency present in the WebM source will be composited against a black background. The resulting MTS file mirrors the structure expected by AVCHD-compatible devices and editing software.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg program. In the browser-based tool this runs via FFmpeg.wasm (WebAssembly); on your local machine, this requires FFmpeg to be installed and accessible in your system PATH. |
-i input.webm
|
Specifies the input file — a WebM container typically holding VP9 video and Opus audio. FFmpeg reads this file and demuxes it into separate elementary streams for processing. |
-c:v libx264
|
Selects libx264 as the video encoder, transcoding the VP9 video stream from the WebM into H.264, which is the video codec required by the AVCHD/MTS standard and expected by camcorder editing software. |
-c:a aac
|
Selects AAC as the audio encoder, transcoding the Opus audio stream from the WebM into AAC — the default audio codec for MTS/AVCHD and the format supported by the broadest range of camcorder players and editing software. |
-crf 23
|
Sets the Constant Rate Factor for the H.264 encoder to 23, the libx264 default. This controls the video quality-to-filesize tradeoff; lower values (e.g., 18) produce higher quality and larger MTS files, while higher values (e.g., 28) reduce quality and file size. |
-b:a 128k
|
Sets the AAC audio output bitrate to 128 kilobits per second, which delivers good stereo audio quality suitable for most video content in the MTS output while keeping file size reasonable. |
output.mts
|
Specifies the output filename with the .mts extension. FFmpeg uses this extension to select the MPEG-2 Transport Stream muxer, producing an AVCHD-compatible file that camcorder software, NLEs, and compatible hardware players can ingest directly. |
Common Use Cases
- Importing web-downloaded VP9/WebM video footage into Sony Vegas Pro, Premiere Pro, or Final Cut Pro workflows that are configured around AVCHD/MTS project settings from camcorder recordings
- Making WebM screen recordings or web video compatible with Panasonic or Sony camcorder editing stations and proprietary software like PlayMemories or MotionDV Studio that only accept MTS input
- Archiving or integrating web-sourced video (such as downloaded conference talks or tutorials) into a library of AVCHD footage from a physical camcorder for unified editing
- Preparing VP9-encoded video for playback on Blu-ray players or set-top boxes that support AVCHD disc playback but have no VP9 decoder
- Converting WebM videos to a broadcast-safe MPEG Transport Stream format for ingestion into professional playout systems or broadcast encoders that expect H.264-in-MPEG-TS
- Re-encoding web video assets into H.264/AAC/MTS format to meet delivery specifications from a client or post-production house using AVCHD-based workflows
Frequently Asked Questions
Yes, because this conversion requires full re-encoding of the VP9 video stream into H.264 — there is no lossless path between these two codecs. The default CRF value of 23 for libx264 produces visually good quality for most content, but some generational quality loss is unavoidable compared to the source. If your WebM was already lossy (most are), you are encoding a lossy source a second time. To minimize quality loss, use a lower CRF value such as 18, though this will increase file size.
No. MTS uses H.264 video inside an MPEG-2 Transport Stream container, and neither the container nor the H.264 codec supports alpha channel transparency. If your WebM file contains a VP9 video stream with an alpha channel, the transparency layer will be dropped during conversion and the transparent areas will be rendered as black in the output MTS file. There is no workaround within the MTS format itself.
The MPEG-2 Transport Stream container used by MTS does not have a standardized mechanism for storing chapter markers the way Matroska-based formats like WebM do. FFmpeg will silently discard any chapter metadata during this conversion. If chapter navigation is important, consider using a container like MP4 or MKV that supports chapters rather than MTS.
Adjust the -crf value in the command to control H.264 output quality. The scale runs from 0 (lossless, very large files) to 51 (worst quality, smallest files), with 23 as the default balance point. For higher quality closer to the original WebM, try -crf 18. For smaller files where some quality degradation is acceptable, try -crf 28. Each increment of roughly 6 CRF units approximately halves or doubles the bitrate of the output.
Yes. On Linux or macOS, you can use a shell loop: `for f in *.webm; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.webm}.mts"; done`. On Windows Command Prompt, use: `for %f in (*.webm) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.mts"`. This browser-based tool processes one file at a time, so the FFmpeg command is especially useful for batch jobs on your local machine.
VP9 (WebM's video codec) generally achieves better compression efficiency than H.264 at equivalent visual quality, so you can expect the MTS output to be somewhat larger than the WebM source at the same perceptual quality level. Conversely, if your WebM was encoded at a very high VP9 bitrate and the H.264 CRF is moderate, the MTS file might be smaller. The actual size difference depends heavily on the source content, original WebM encoding settings, and the CRF value you use for H.264.
Technical Notes
WebM uses the Matroska container with VP9 video and Opus audio — codecs designed specifically for efficient web streaming with no royalty obligations. MTS (AVCHD) uses the MPEG-2 Transport Stream container with H.264 video and AAC audio, a format defined for high-definition camcorder recording and optimized for sequential hardware playback rather than web streaming. Because these containers and codecs have no overlap, both the video and audio streams must be fully transcoded. The libx264 encoder used here produces highly compatible H.264 video that plays on virtually all AVCHD-aware software, though it does not match VP9's compression efficiency at the same visual quality. WebM's support for multiple audio tracks is preserved in MTS since the transport stream format also supports multiple elementary audio streams, but subtitle streams from the WebM may not carry over cleanly due to differences in subtitle track handling between Matroska and MPEG-TS. HDR metadata present in VP9 HDR WebM files is unlikely to be correctly preserved in the MTS output without additional flags targeting HDR signaling in H.264. The special `-b:v 0` flag used in some VP9 encoding pipelines is not required here since libx264 uses CRF-based quality control by default.