Initializing... drag & drop files here
Supports: JPG, JPEG, JFIF
-q:v value — lower means higher quality and larger files. For Video Resolution pick Keep original, a Fixed Resolution preset (1080p, 720p, 480p, 4K, 1440p), or enter custom Width × Height in pixels or as a percentage of the source..mjpeg file. No sign-up, no watermark, no email gating, no per-file count cap.Motion JPEG is a sequence of independently compressed JPEG frames bundled as a video stream. Every frame is a complete JPEG that decodes on its own — there are no I/P/B frames or inter-frame prediction the way H.264 and H.265 use. That makes the format larger but also makes it trivial to seek to a single frame, extract it as a still, or recover playback after a dropped packet. Typical scenarios:
FF D8) and decoded, which is why frame-by-frame review tools and high-speed cameras still emit MJPEG.multipart/x-mixed-replace MJPEG stream is the simplest "video" any browser can render — handy for low-latency dashboards and embedded UIs where pulling in an H.264 decoder is overkill.Once you have the MJPEG, you can convert MJPEG to MP4 for general sharing, or feed PNG sequences into the same flow. JPG sources use the JPG to MJPEG endpoint with identical options.
| Property | JPEG (still) | MJPEG (video) |
|---|---|---|
| File extension | .jpg, .jpeg, .jfif |
.mjpeg, .mjpg, or inside .avi / .mov |
| MIME type | image/jpeg |
video/x-motion-jpeg (no IANA registration) |
| Compression | Lossy DCT on 8×8 blocks | The same DCT, applied frame-by-frame |
| Frame relationship | N/A — single image | Each frame independent; no inter-frame prediction |
| Has timing metadata | No | Optional; raw MJPEG streams have none and rely on the container or a default frame rate |
| Plays where | Every browser, every OS, every image viewer | VLC, QuickTime, FFmpeg-based players, most browsers via <img> MJPEG-over-HTTP |
| Typical size | 0.1–5 MB per image | Roughly frame_size × frame_count; no compression savings across frames |
| Standardised by | ISO/IEC 10918-1 (1992) | No formal international standard; container-defined (Apple QuickTime, Microsoft AVI, IETF RFC 2435 for RTP) |
| Property | MJPEG | H.264 | H.265 |
|---|---|---|---|
| Compression efficiency | ~1:20 best case | ~1:50 typical | ~1:100 typical (≈ 2× better than H.264 at the same quality) |
| Storage vs H.264 same quality | 5–20× larger | Baseline | ~50% of H.264 |
| Encode CPU cost | Very low (no motion search) | Moderate | High; hardware acceleration usually required |
| Latency | Sub-frame; ideal for live monitoring | One GOP of buffering | Higher (longer GOPs and B-frames) |
| Per-frame error containment | Excellent — one bad frame, others intact | A lost I-frame breaks a GOP | Same as H.264, longer GOPs make it worse |
| Frame extraction | Instant — every byte stream contains JPEGs | Requires decoding to that GOP | Requires decoding to that GOP |
| Royalty / patent | None — JPEG patents expired | MPEG LA pool | HEVC pools (MPEG LA, Access Advance, Velos) |
| Browser support | Native via <img> MJPEG over HTTP |
Native HTML5 video in all current browsers | Safari 11+, Edge with extension, Chrome 107+ (hw-decode dependent) |
Internally the converter maps presets to FFmpeg's -q:v (qscale) on the MJPEG encoder. Lower qscale = higher quality. There is no universally published table — these values match what FFmpeg's mjpeg encoder uses in current builds.
| Preset | Approx -q:v |
Visual result | Typical use |
|---|---|---|---|
| Highest | 1–2 | Near-lossless; large files | Editing intermediates, frame archival |
| Very High | 3–5 | Visually transparent on a calibrated monitor | Master copies, evidence-grade |
| High | 6–9 | Light DCT ringing only on hard edges | General-purpose conversion (default) |
| Medium | 10–15 | Visible blocking in flat gradients | Preview proxies, web playback |
| Low | 16–24 | Obvious 8×8 blocking, posterised gradients | Thumbnails, low-bandwidth dashboards |
| Lowest | 25–31 | Heavily quantised; chroma smearing | Smallest possible MJPEG, accept artifacts |
In most cases it shouldn't be much larger — MJPEG just packages each JPEG frame back-to-back with a small container header. If you see a big jump, check three things: (1) did you let the converter re-encode at a lower qscale (e.g., Highest) than the source JPEGs were saved at, (2) did you resize the output above the source resolution (the encoder will upscale and re-quantise), and (3) is the source JPEG at 4:4:4 chroma while MJPEG is defaulting to 4:2:0 (this usually decreases size, not increases). Pick "Keep original" resolution and a matching quality preset to stay closest to source size.
Raw .mjpeg files do not carry timing information — they are just concatenated JPEG frames separated by FF D8 ... FF D9 markers. Players (including FFmpeg) assume a default frame rate when none is specified — FFmpeg defaults to 25 fps. If you need an explicit frame rate, wrap the MJPEG in AVI or MOV at convert time, or use the Duration setting in step 2 so the converter writes the chosen rate into the container.
.mjpeg file?VLC plays raw MJPEG streams on Windows, macOS, and Linux. QuickTime plays MJPEG inside a .mov container. FFmpeg-based tools (HandBrake, MPC-BE, mpv) decode it natively. Most modern browsers will render a multipart/x-mixed-replace MJPEG stream inside an <img> tag — that's how many IP-camera web UIs deliver live preview without a video element. Wrapped MJPEG inside .avi (FOURCC = MJPG) is also widely supported by Windows Media Player and DirectShow apps.
If your downstream tool can read an image sequence (FFmpeg, DaVinci Resolve, Premiere via "Import as Sequence", After Effects), keep the JPEG folder — it's easier to edit and reorder. Convert to MJPEG when the consumer expects a single video file (VLC, a player embedded in firmware, an IP-camera test harness, an old NLE that doesn't import sequences), when you need to drop the result onto a USB stick for a kiosk, or when you want one file rather than a folder for archival.
Not in a raw .mjpeg stream — MJPEG by itself is video-only. To pair audio with MJPEG video you need a container: AVI (MJPG + PCM/MP3/AAC) or QuickTime/MOV (MJPEG + AAC) both work. This converter outputs video-only MJPEG; if you need audio, convert the MJPEG to MP4 afterwards and mux in your audio there.
MJPEG defaults to 4:2:0 chroma subsampling — the JPEG you started with may have been saved at 4:4:4 or 4:2:2. Subsampling discards three-quarters of the chroma resolution, which shows up as softer edges on saturated colours (red text on blue is a classic giveaway). MJPEG players generally assume 4:2:0, so for true colour-fidelity work prefer a less-compressed intermediate (FFV1 in MKV, or H.264 High 4:4:4 Predictive).
There's no hard cap from the converter; the practical limit is browser memory because frames assemble in your session. A 1080p MJPEG at quality "High" runs roughly 0.3–0.6 MB per frame, so 10,000 frames produces a 3–6 GB output — well within range of a desktop browser but worth chunking if you're on a phone or tablet. For very large jobs, convert in batches of 1,000–2,000 frames and concatenate the resulting .mjpeg files with a simple byte append (raw MJPEG streams concatenate cleanly because each JPEG self-delimits).
The MJPEG encoder re-encodes each frame; even at qscale 1 it is not strictly lossless — it's near-lossless. If you need an exact byte-identical copy of every input JPEG, MJPEG is not the right container; use a JPEG-preserving wrapper such as an AVI with MJPG FOURCC that copies the JPEG bitstream without re-encoding, or keep the original sequence. The converter cannot bit-copy because it normalises chroma subsampling and resolution across frames so playback is consistent.
Conversion runs in your browser session and files are deleted when the session ends. No account, no email, no watermark, and no Pro-tier gate on file count or output length.