Initializing... drag & drop files here
Supports: M2TS
An .m2ts is a BDAV transport stream — the packaging Blu-ray discs and AVCHD camcorders use. It is an MPEG transport stream with a twist: every 188-byte packet is prefixed with a four-byte arrival timestamp, so the packets are 192 bytes and the 0x47 sync byte sits at offset 4 rather than offset 0. BMP is the opposite kind of file: a single Windows device-independent bitmap with no timeline, no audio and no inter-frame prediction.
This page decodes a frame out of that stream and writes it as a .bmp. What is worth knowing before you start is that the BMP writer is not a quality dial — the three rungs in the preset list are three genuinely different writers, and none of them produces the 24-bit true-colour bitmap most people assume "BMP" means. The measured table below is the important part of this page.
.m2ts onto the page or click "+ Add Files". Camcorder and disc-rip streams are large, so the upload usually takes far longer than the decode. Several files can be queued and share one set of settings.Behind the three rungs sit three separate encoders. We ran a 1920x1080 frame decoded from an .m2ts through each of them and read the results back out of the BMP headers:
| Preset | How the bitmap is produced | Header written | Bits per pixel | Compression | Distinct colours left | File size |
|---|---|---|---|---|---|---|
| High (applies by default) | 16-bit RGB555 pixel format, straight raster dump | BITMAPINFOHEADER (40 bytes) | 16 | None (BI_RGB) | 6,748 | 4,147,254 bytes |
| Medium | 256-colour palette, Floyd–Steinberg dither, light selective blur, forced BMP v3 | BITMAPINFOHEADER (40 bytes) | 8 | Run-length (BI_RLE8) | 251 | 348,056 bytes |
| Low | 86-colour palette, Floyd–Steinberg dither, 150 px/cm density tag | BITMAPV5HEADER (124 bytes) | 8 | Run-length (BI_RLE8) | 86 | 221,932 bytes |
The source frame carried 59,464 distinct colours. Three consequences follow directly:
| What you want | Mode | Setting |
|---|---|---|
| The opening frame | Specific Frame | Leave Time (seconds) at 0 |
| A known moment | Specific Frame | Type the timestamp in seconds |
| A storyboard of a whole clip | Multiple Screenshots | 2 to 5 seconds per frame |
| Motion review of a short action | Multiple Screenshots | 0.1 or 0.2 seconds per frame |
| A small reference thumbnail | Specific Frame + Preset Resolutions | 240p or 144p |
Multiple Screenshots on a long recording is the fastest way to fill a disk: a ten-minute clip at one frame per second is 600 bitmaps, and at the High rung each 1080p file is roughly 4 MB. Drop the resolution preset first, or trim the source with Video Cutter before uploading.
It does not deinterlace. A great deal of AVCHD material is 1080i, and there is no deinterlacing stage anywhere in this pipeline. A frame grabbed from interlaced footage keeps its comb teeth baked into the bitmap, and they are most obvious on horizontal motion. If your .m2ts is 1080i and the still has to look clean, deinterlace in a desktop editor and export the frame from there.
It does not tone-map HDR. A Blu-ray-derived HDR10 stream gets a plain colour conversion on the way to an 8-bit-per-channel-or-less bitmap, with no HDR-to-SDR operator in between, so highlights can look flat or washed out. Convert the clip to SDR first if the picture has to be graded correctly.
Only on the High rung, and even then it is 16-bit rather than 24-bit. High writes a BI_RGB bitmap with no compression at 16 bits per pixel (5 bits each for red, green and blue). Medium and Low both write 8-bit palettised bitmaps with BI_RLE8 run-length compression, which is a real compression scheme and a real loss of colour — down to 251 and 86 distinct colours respectively in our measurement. If you need a truly lossless, full-colour still, M2TS to PNG is the honest choice.
Because those are the only three rungs implemented for BMP output. The seven-step ladder you see on JPEG-family targets — Highest through Lowest — maps to JPEG quality numbers, and a bitmap has no equivalent dial. The four missing rungs are hidden on this page rather than silently doing nothing, and High is what applies if you never open Advanced Options.
High, and then convert onward if the file has to be pixel-exact. High is the only rung that does not quantise to a palette, so it preserves spatial detail intact — but its 5-5-5 colour truncation still discards colour precision relative to the decoded frame. For work where the pixel values themselves are evidence, take the still as PNG with M2TS to PNG instead; PNG at the top rung is true-colour and lossless, and BMP has no rung that matches it.
Close to it. Switch to Multiple Screenshots and pick the fastest capture rate — one frame every 0.1 s — which yields about ten stills per second of footage rather than one per video frame at 25 or 30 fps. That is dense enough for motion review and stops a two-minute clip from becoming thousands of multi-megabyte bitmaps. For a long recording, cut the section you care about with Video Cutter first.
No. The extra four-byte arrival timestamp on each packet is a container detail, and the decoder strips it before the frame is ever reconstructed. It matters for players and disc-authoring tools that expect one framing or the other, not for a frame grab. The same decode works on a plain .ts or an AVCHD .mts — the difference is only where the sync byte sits inside each packet.
Because a bitmap has no pixel-aspect flag and the frame is written with square pixels at its stored dimensions. Most .m2ts material is 1920x1080 or 1280x720 with square pixels already, so this rarely bites, but anamorphic 1440x1080 AVCHD is stored narrow and flagged for 16:9 display. If your source is 1440x1080, set Width x Height to 1920x1080 so the still matches what a player shows.
A transport stream captured mid-broadcast or cut out of a longer recording can begin partway through a group of pictures, so the opening frame has no complete reference to decode against. Leave Specific Frame selected and set Time (seconds) to 2 or 3 to land past the first clean keyframe. If the whole file decodes badly, re-package it first with M2TS to MP4 and take the still from that.
No, and there is nothing standard for it to keep. A BMP header carries width, height, bit depth, compression type and a pixel-density field — no timestamps, no camera model, no colour profile, no timecode. The Low rung is the only one that writes a meaningful density value (150 pixels per centimetre); High and Medium leave it at zero. If you need shooting metadata alongside the frame, note it from the source file before converting.
Multiply by rung. At 1920x1080 the High rung is a fixed 4,147,254 bytes per frame regardless of picture content, because an uncompressed raster has no content-dependent size. Medium and Low vary with the image — the flatter the frame, the better RLE does — and on our test frame they came in at 348 KB and 222 KB. A 720x480 source at High is 691,254 bytes per frame by the same arithmetic.
It is uploaded over an encrypted connection, decoded on our servers, and both the upload and the bitmaps are deleted automatically after a few hours. No account is required, no watermark is applied, and nothing is shared or made public. If you want to shrink the finished bitmaps afterwards, Compress BMP works on the output directly.