Convert M2TS to TS — Free Online Tool
Convert M2TS (Blu-ray BDAV) files to MPEG-2 Transport Stream (TS) format using H.264 video and AAC audio — both formats share the same transport stream foundation, making this an efficient conversion that strips Blu-ray-specific metadata while producing a broadcast- and HLS-compatible TS file. Ideal for bringing high-definition Blu-ray or AVCHD footage into broadcast pipelines, streaming workflows, or editing systems that prefer standard MPEG-TS over the BDAV variant.
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 and TS are both MPEG-2 Transport Stream variants, but M2TS includes a 4-byte Blu-ray timecode header (the 'TP_extra_header') on each 192-byte packet, compared to the standard 188-byte TS packet. This conversion re-encodes the video stream using libx264 (H.264) and transcodes audio to AAC rather than performing a simple remux, because the source M2TS may carry Blu-ray audio formats like DTS-HD, TrueHD, or AC-3 that need to be converted, and because the packet structure itself must be rebuilt into standard 188-byte TS packets. The result is a clean, standard-compliant MPEG-TS file compatible with broadcast systems, HLS delivery, and media players that may not recognize the BDAV container.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — the open-source multimedia processing engine that powers this conversion both in the browser (via FFmpeg.wasm) and on the desktop command line. |
-i input.m2ts
|
Specifies the input file in M2TS (BDAV MPEG-2 Transport Stream) format, which uses 192-byte packets with Blu-ray timecode headers that FFmpeg will parse and unwrap during processing. |
-c:v libx264
|
Re-encodes the video stream using the libx264 H.264 encoder, producing output compatible with broadcast MPEG-TS, HLS streaming, and virtually all modern media players — replacing whatever video codec (H.264, MPEG-2, or VC-1) was in the source M2TS. |
-c:a aac
|
Transcodes the audio to AAC using FFmpeg's built-in AAC encoder, replacing Blu-ray audio formats like TrueHD, DTS-HD MA, or AC-3 that may be present in the M2TS with a universally compatible lossy audio codec standard in MPEG-TS delivery. |
-crf 23
|
Sets the Constant Rate Factor for libx264 to 23, the default quality level that balances file size and visual quality well for HD content — lower values (e.g., 18) yield larger files with better quality, which may be preferable when the M2TS source is high-bitrate Blu-ray content. |
-b:a 128k
|
Sets the AAC audio output bitrate to 128 kilobits per second, which is adequate for stereo dialogue and music but represents a significant reduction if the M2TS source contained lossless or high-bitrate surround audio; increase to 192k or 256k for better fidelity. |
output.ts
|
Specifies the output filename with the .ts extension, telling FFmpeg to mux the re-encoded video and audio into a standard 188-byte MPEG-2 Transport Stream container suitable for broadcast, HLS, and general media playback. |
Common Use Cases
- Importing AVCHD camcorder footage (stored as .m2ts) into broadcast editing systems like Avid or Grass Valley that require standard MPEG-TS rather than BDAV-wrapped streams
- Preparing Blu-ray ripped video for HLS (HTTP Live Streaming) delivery, where standard TS segments are required by the protocol
- Converting M2TS recordings from a Blu-ray capture card into a TS format compatible with DVB broadcast playout servers
- Stripping Blu-ray-specific DTS-HD or TrueHD audio tracks from an M2TS file and encoding to AAC for compatibility with streaming and mobile devices
- Archiving BDAV recordings from a Blu-ray recorder into a more universally supported MPEG-TS container for long-term storage and playback on media centers like Kodi or Plex
- Re-packaging high-definition M2TS content for use in IPTV systems or set-top boxes that accept standard TS streams but reject BDAV container signaling
Frequently Asked Questions
Yes, there is some quality loss because the video is re-encoded from its original codec (often H.264 or MPEG-2 in the M2TS) to H.264 using libx264, and audio is transcoded to AAC. The default CRF 23 for video and 128k for audio are reasonable quality settings for most use cases. If the source M2TS already contains H.264 video, you could minimize generation loss by using a lower CRF value (e.g., 18) or by modifying the command to copy the video stream directly with '-c:v copy' if the codec is compatible.
In theory, because both are MPEG-2 Transport Stream variants, a direct remux is sometimes possible — but M2TS files frequently carry Blu-ray-specific audio codecs like TrueHD or DTS-HD MA that are not standard TS audio formats and must be transcoded. Additionally, the 192-byte BDAV packet structure with its extra timecode header must be unwrapped and repacked into standard 188-byte TS packets. FFmpeg handles this automatically, but it means at minimum the container must be rebuilt, and audio almost always needs transcoding.
Both M2TS and TS support subtitles, but subtitle compatibility depends on the subtitle type in the source file. Blu-ray PGS (Presentation Graphic Stream) subtitles from M2TS are bitmap-based and may not be carried into the output TS without explicit mapping flags like '-c:s copy'. The default command does not include subtitle mapping, so add '-map 0' and '-c:s copy' to the command if subtitle preservation is needed.
By default, FFmpeg selects only one audio stream (typically the first or highest-priority track). If your M2TS source contains multiple audio tracks — common with Blu-ray content that includes multiple language dubs — you need to add '-map 0:v -map 0:a' to the command to map all video and audio streams explicitly. Each audio track will then be transcoded to AAC in the output TS file.
To adjust video quality, change the '-crf' value: lower numbers mean better quality and larger files (e.g., '-crf 18' for high quality, '-crf 28' for smaller files). The scale runs from 0 (lossless) to 51 (worst). For audio, change the '-b:a' bitrate: replace '128k' with '192k' or '256k' for better audio fidelity, or '96k' for smaller files. For example: 'ffmpeg -i input.m2ts -c:v libx264 -c:a aac -crf 18 -b:a 192k output.ts' gives noticeably higher quality output.
Yes. On Linux or macOS, use a shell loop: 'for f in *.m2ts; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.m2ts}.ts"; done'. On Windows Command Prompt: 'for %f in (*.m2ts) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.ts"'. This is especially useful for batch-converting AVCHD camcorder clips, and is one reason the FFmpeg command is displayed on this page — the browser tool handles one file at a time, but your desktop can handle entire directories.
Technical Notes
M2TS uses 192-byte transport stream packets (standard TS uses 188 bytes), with the extra 4 bytes carrying a Blu-ray arrival timestamp used for buffer management on disc playback — this header is discarded in the conversion to standard TS. The default output codec pair (libx264 + AAC) is chosen for maximum compatibility: H.264 in TS is the backbone of broadcast HD and HLS streaming, and AAC is the standard audio codec for MPEG-TS in modern delivery systems. If your source M2TS carries lossless audio (TrueHD, DTS-HD MA), transcoding to AAC at 128k represents a significant audio downgrade; increasing to 256k or 320k is recommended for high-fidelity archival use. Chapters are not supported in either M2TS or standard TS containers, so no chapter metadata is lost. The output TS format adds HLS compatibility that M2TS lacks, making it directly segmentable by tools like FFmpeg's HLS muxer. Note that Blu-ray PGS subtitle streams and multiple audio tracks require explicit stream mapping beyond the default command.