Initializing... drag & drop files here
Supports: MJPEG
An .m2v is an MPEG-2 video elementary stream: coded pictures under ITU-T H.262 / ISO/IEC 13818-2 with no container, no audio and no index. It is not a delivery format — it is the intermediate that DVD authoring suites, MPEG-2 hardware encoders and broadcast multiplexers hand each other before anything is muxed. If a tool has asked you for "the M2V", this is what it means.
MJPEG is the opposite end of the same era: a run of complete JPEG pictures, one per frame, with no motion prediction and no header of its own. Converting one to the other means throwing away per-frame independence in exchange for MPEG-2's inter-frame compression, and it means paying attention to one control in particular.
.mjpeg onto the page or click "Add Files". Several files can be queued and they share the same settings..m2v output accepts exactly one of them. This is the single most important thing on the page and the next section explains it in full..m2v. Files are uploaded over an encrypted connection, re-encoded on our servers and deleted automatically after a few hours — no sign-up, no watermark.The Video Codec group on this page offers DivX, H.261, H.263, H.263+, H.264, H.265, MJPEG, MPEG-1, MPEG-2, MPEG-4 and Xvid. MPEG-2 is the one the page resolves to by default, and it is the only one that produces a file.
The reason is structural. A .m2v is not a container — it is a raw MPEG-2 elementary stream, and the muxer that writes it accepts an MPEG-2 video stream and nothing else. Ask it to write H.264, MPEG-4, Xvid, MJPEG, MPEG-1 or any of the H.26x variants into that stream and the muxer refuses to write a header at all; the job ends with an empty output rather than a playable file with the wrong codec inside. Every alternative tested against that muxer — H.264, H.265, MPEG-1, MPEG-4, Xvid, MJPEG and H.263 — failed in exactly the same way, writing nothing.
So: if you want any of those other codecs, you want a different target, not a different setting on this one.
MPEG-2 does not support constant-rate-factor encoding, so every compression mode on this page resolves to a bitrate before it reaches the encoder. Constant Quality is accepted and then converted into a bitrate target rather than a quality target, which means the number you set there does not behave the way a CRF value does on H.264. Choose Constant Bitrate or Variable Bitrate and set a real figure.
There is also a floor. MPEG-2 fails outright below a certain bitrate for a given frame size, so the pipeline computes a minimum from the output resolution — pixels multiplied by a bits-per-pixel figure that rises with resolution, multiplied by 30, with an absolute floor of 2 Mbps — and raises anything lower to that minimum. Asking for less does not produce a smaller file; it produces the minimum.
| Output resolution | Bits per pixel used | Minimum bitrate applied |
|---|---|---|
| 640 x 480 | 0.10 | 2.00 Mbps (the absolute floor) |
| 720 x 576 | 0.10 | 2.00 Mbps (the absolute floor) |
| 1280 x 720 | 0.10 | 2.76 Mbps |
| 1920 x 1080 | 0.12 | 7.46 Mbps |
| 2560 x 1440 | 0.15 | 16.59 Mbps |
| 3840 x 2160 | 0.18 | 44.79 Mbps |
The practical reading of that table is that MPEG-2 is a standard-definition codec being asked to do high-definition work. If your target size is well under those figures, reducing the resolution is the lever that works; asking for a lower bitrate is not.
| Property | In the .mjpeg source |
In the .m2v output |
|---|---|---|
| Frame rate | Not stored; 25 fps is assumed by the decoder | Written into the MPEG-2 sequence header, but only from MPEG-2's legal set (23.976, 24, 25, 29.97, 30, 50, 59.94, 60) |
| Duration | Not stored — ffprobe reports duration=N/A |
Still not stored; an elementary stream has nowhere to put it |
| Per-frame timestamps | Absent | Absent; pts_time reads N/A for every frame |
| Audio | Impossible — MJPEG carries pictures only | Impossible — .m2v carries video only |
| Inter-frame compression | None; every frame is a complete JPEG | Full MPEG-2 GOP structure, which is where the size saving comes from |
Because neither format stores a frame rate you can trust, timing is the thing most likely to surprise you. A measured example: a thirty-frame capture recorded over three seconds at 10 fps came back as a 1.200-second clip at 25 fps — all thirty frames intact, the timing invented. This page has no frame-rate control to override that.
Almost certainly because the Video Codec was changed away from MPEG-2. The .m2v target is a raw MPEG-2 elementary stream and its muxer will not write a header for any other codec, so the job ends with nothing written. Set Video Codec back to MPEG-2 and convert again. If you specifically need a different codec, pick a target that has a real container — MP4, MKV, AVI or TS.
Because the format cannot hold any, and neither could the source. MPEG-2 systems keep video and audio in separate elementary streams and rely on a program stream or transport stream to bind them together, so a .m2v is video and nothing else. MJPEG is likewise picture-only. If you need both in one file, convert to an MPEG program stream or to MJPEG to TS instead.
You can set it, but the encoder will not use it. MPEG-2 fails to encode below a resolution-dependent minimum, so the pipeline calculates that minimum and raises your figure to it rather than letting the job fail. At 1080p the floor works out around 7.5 Mbps; at 4K it is close to 45 Mbps. If you need a genuinely small file, either reduce the resolution — which lowers the floor along with it — or use a modern codec on a different target page.
Not as a quality mode. MPEG-2 has no constant-rate-factor support at all, so the value you set is converted into a bitrate target before encoding. The result is a valid file, but the control does not behave the way it does on an H.264 or H.265 target, where a CRF value holds quality steady and lets the size float. On this page, set a bitrate directly and treat resolution as your other lever.
Because there is no container to record one in. Duration, bitrate, timestamps and stream indexes all live in a container layer, and an elementary stream has none of it. Players cope by counting frames and assuming the frame rate in the sequence header, which is why the scrub bar is unreliable and seeking is approximate. Wrapping the stream in a container — a transport stream, a program stream or an MP4 — restores all of that.
Usually yes, and that is the main reason this target exists. DVD authoring tools generally want video and audio as separate elementary streams and multiplex them themselves, so an .m2v alongside an .ac3 or .mp2 audio file is the classic input pair. Check what frame size and rate your authoring tool expects — 720 x 480 at 29.97 fps for NTSC, 720 x 576 at 25 fps for PAL — and set it with Width x Height rather than leaving it on Keep original.
Very likely, and often by a large margin. Motion JPEG compresses each frame independently and stores no motion information at all, so a static shot costs exactly as much per frame as a moving one. MPEG-2 codes most frames as differences from their neighbours, which on typical footage removes the great majority of the data. The exception is content that changes completely every frame, where inter-frame prediction has nothing to work with.
Yes. The JPEG frames are decoded to pixels and compressed again as MPEG-2, so this is a second lossy generation — there is no pass-through path on this site. MPEG-2 at a generous bitrate holds up well on the kind of material MJPEG captures usually contain, but if you plan further processing, keep the original MJPEG as your master.
Your .mjpeg is uploaded over an encrypted connection, decoded and re-encoded on our servers, and both the upload and the resulting .m2v are deleted automatically after a few hours. Nothing is shared or made public, and there is no sign-up, no watermark and no account. Motion JPEG files are large for their running time, so trimming the source first with video cutter is often faster than uploading the whole capture.