Initializing... drag & drop files here
Supports: MJPEG
.mjpeg streams from IP and security cameras, webcams, dashcams, and older camcorders. Batch is supported — drop in several files and each one converts in parallel.MJPEG (Motion JPEG) is a video format in which every frame is compressed independently as its own JPEG image, with no temporal compression between frames. It emerged in the early 1990s for multimedia PC applications and was never standardized into a single universal specification — instead each device or container (AVI, QuickTime, Matroska) defines its own MJPEG variant, and its use over networks was later formalized only for transport, as an RTP payload in RFC 2435. That fragmentation is why one player can open an MJPEG file another rejects. It remains common in IP and security cameras, webcams, surveillance and dashcam recorders, older digital cameras, medical-imaging and machine-vision systems, and some editing workflows, where its per-frame design makes single-frame seeking trivial and keeps decoding simple enough for low-power hardware.
That same intra-frame design is exactly why people convert away from MJPEG: because it never exploits the redundancy between consecutive frames, it produces very large files. Motion JPEG typically reaches only a 10:1 to 20:1 compression ratio, whereas modern inter-frame codecs like H.264 commonly reach 50:1 or better — so the most common reason to convert is simply to shrink the file. Other reasons include:
<video> embed or a background loop, WebM with VP9 or AV1 lands far smaller than the original MJPEG and plays in Chrome, Firefox, and Edge natively.| Property | Value |
|---|---|
| Full name | Motion JPEG |
| Frame coding | Each frame an independent baseline JPEG (ITU-T T.81 / ISO/IEC 10918-1), DCT-based |
| Compression | Intra-frame only — no prediction between frames |
| Typical ratio | Roughly 10:1 to 20:1 |
| Standardization | No single universal spec; RTP transport defined in RFC 2435 (1998) |
| Container(s) | Raw .mjpeg / .mjpg elementary stream, or muxed into AVI, QuickTime/MOV, Matroska |
| Audio | None in a raw stream — video-only; audio exists only when muxed into a container |
| Color / bit depth | 8-bit per channel, typically 4:2:0 or 4:2:2 chroma |
| Native playback | VLC and FFmpeg-based players decode reliably; no built-in Windows Media Player support; browser support inconsistent |
| Common sources | IP/security cameras, webcams, dashcams, older digicams, medical imaging, machine vision |
| Codec / format | Compression type | File size (relative) | Where it plays | Best for |
|---|---|---|---|---|
| MJPEG (source) | Intra-frame only (per-frame JPEG) | ~400% of H.264 | VLC, FFmpeg players, many editors; not Windows Media Player | Frame-accurate editing, camera/dashcam capture |
| H.264 (in MP4/MOV) | Inter-frame (long-GOP) | 100% (baseline) | Effectively every device since ~2010 | Universal playback, big size savings |
| H.265 (HEVC) | Inter-frame | ~50-60% of H.264 | Safari 11+, Chrome 107+, Edge, recent Android | Maximum compression, modern devices |
| VP9 (in WebM) | Inter-frame | ~50-70% of H.264 | Chrome, Firefox, Edge, Android; limited on Safari | Royalty-free web video |
| AV1 (in WebM/MP4) | Inter-frame | ~30-50% of H.264 | Chrome 70+, Firefox 67+, Safari 17+ (partial), Edge | Smallest files; slow software encode |
| MPEG-4 / XviD (in AVI) | Inter-frame | ~140% of H.264 | VLC, older Windows players | Legacy AVI compatibility |
VLC Media Player is the most reliable option — it decodes Motion JPEG natively on Windows, macOS, and Linux. Many editors and some browsers can read MJPEG too, but Windows Media Player lacks built-in support, which is why a plain .mjpeg from an IP camera or dashcam often refuses to open there. Because MJPEG has no single universal specification, even players that support "MJPEG" may reject a variant produced by a specific camera. If a file won't open at all, converting it to MP4 is usually the fastest fix, since it re-encodes the video into a container nearly everything plays.
A raw .mjpeg (or .mjpg) stream is video-only — the format defines a sequence of JPEG frames and carries no audio track of its own. Sound exists only when Motion JPEG video is muxed into a container such as AVI or QuickTime/MOV alongside a separate audio stream, which happens with some older camcorders and capture cards but is rare for IP-camera and dashcam exports. If your file does carry a soundtrack and you want just that, MJPEG to MP3 pulls it out; if there is no audio stream, that conversion has nothing to extract.
Because MJPEG compresses each frame as a standalone JPEG and never compares one frame to the next, it stores a full image for every single frame — even when most of the picture hasn't changed. Inter-frame codecs like H.264 instead store only what changed between frames, which is how they reach far higher compression than MJPEG's roughly 10:1 to 20:1. On a static surveillance or dashcam scene that difference is enormous, and it's the main reason converting MJPEG to MP4 (H.264) can shrink a file substantially.
It depends on the footage, but the savings are usually large because H.264's inter-frame compression is far more efficient than MJPEG's per-frame approach. In our testing, a 10-second 1080p MJPEG clip of a mostly static scene dropped from about 78 MB to roughly 4 MB after re-encoding to H.264 at the Very High preset — a 95% reduction — with no visible quality loss in side-by-side viewing. Clips with constant motion compress less dramatically, but a multiple-times reduction is typical.
No. MJPEG stores video as a stream of standalone JPEG frames, while every other video codec (H.264, H.265, VP9, AV1) uses a fundamentally different inter-frame scheme — so turning MJPEG into MP4, MOV, WebM, or any other video format is always a fresh re-encode, and a small amount of generational loss is unavoidable (usually invisible at the Very High preset). Even extracting frames as stills re-encodes: the extractor decodes each frame to pixels and writes a fresh JPEG, so the output is a second JPEG generation rather than a byte-for-byte copy of the stored frame — kept minimal at the Very High preset, and avoidable entirely by exporting to PNG instead. Keep the original MJPEG if you need a pristine master for archival or forensic work.
Some, but it's usually invisible. MJPEG to MP4 is always a re-encode, not a remux, because the two use entirely different compression — so the H.264 encoder makes its own perceptual decisions about each frame. At the Very High (or a low Constant Quality) preset, the result is visually indistinguishable from the source in normal viewing, while the file is a fraction of the size. If you need to preserve every pixel for archival or forensic work, keep the original MJPEG and convert a copy.
Yes, and it's a natural fit. Since each MJPEG frame is already an independent JPEG image, pulling one frame out is a simple, high-quality operation — though the extractor still decodes and re-encodes it, so a JPEG still is a second generation (use MJPEG to PNG for a lossless grab). Use MJPEG to JPG to pull frames out as image files — handy for grabbing a license plate from dashcam footage or a specific moment from a surveillance clip. For a short animated preview instead, MJPEG to GIF builds a silent loop with adjustable framerate and palette.
For almost everyone the answer is MP4 with H.264: it plays on effectively every device and browser and slashes the file size versus the MJPEG source. Choose MOV if you're importing into Final Cut Pro or another Apple-centric editor, WebM (VP9/AV1) for a royalty-free HTML5 web embed, MKV for a flexible multi-track container on a media server, or GIF for a short silent loop. If you only need one still image or a handful of frames rather than a playable clip, skip video entirely and extract JPGs.
Files are uploaded over an encrypted connection, processed on our servers, and deleted automatically after a few hours — no sign-up, no watermark, never shared or made public. There's no fixed per-file cap; the practical limit is upload size and your connection speed, and MJPEG files run large, so a multi-gigabyte dashcam capture can take a while to upload. If you only need part of a long recording, trim it first with the Video Cutter, or shrink an already-converted clip with the Video Compressor.