JPEG to MJPEG Converter

Create MJPEG (Motion JPEG) video from JPEG images. Used for IP cameras, surveillance systems, webcams, and industrial inspection equipment.

Initializing... drag & drop files here

Supports: JPG, JPEG, JFIF

OptionsAdvanced Options - Our defaults are optimized for the best results. We recommend you keeping the defaults unless you have a specific need.
Show All Options
Merge strategy
Select Merge images to combine all uploaded files into a single video. Use Video per image to create a separate video for each individual file.
Image Duration
Duration
This is amount to time a single image is displayed on the output video. Only applied to images that are not GIF.
Background Color
Background Color
File Compression
Preset
Video resolution

How to Convert JPEG to MJPEG Online

  1. Upload Your JPEG Files: Click "+ Add Files" or drag and drop JPEG, JPG, or JFIF images. Batch upload is supported — drop a whole folder of stills to assemble a single Motion JPEG sequence. Files stay in your browser session; nothing is sent to a third-party account.
  2. Pick a Merge Strategy and Frame Duration: Choose Merge images to combine every still into one continuous MJPEG video, or Video per image to emit one short MJPEG per JPEG. Set Duration per frame from 1/60 second (60 fps playback) up to 10 seconds for slideshow-style pacing, and pick a Background Color (default Black) used to letterbox stills whose aspect ratio doesn't match the output frame.
  3. Set Quality and Resolution (Optional): Under File Compression pick a Quality Preset (Lowest, Low, Medium, High, Very High, Highest) or switch to Constant Quality with a numeric -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.
  4. Convert and Download: Click "Convert" and grab the resulting .mjpeg file. No sign-up, no watermark, no email gating, no per-file count cap.

Why Convert JPEG to MJPEG?

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:

  • IP cameras and DVR ingest — Many security cameras and older NVR/DVR systems output an MJPEG stream directly because each frame is self-contained, so a corrupt packet only damages one frame instead of an entire GOP. Per SCW's codec primer, MJPEG uses roughly 5–20× the storage of H.264 at the same resolution, so it's mostly used today on low-duty-cycle cameras (doorbells, motion-triggered recorders).
  • USB webcam and capture-card pipelines — The USB Video Class (UVC) spec lists MJPEG as a supported compressed payload, and most webcams above 720p use MJPEG to fit higher resolutions and frame rates inside USB 2.0 bandwidth. Converting a JPEG sequence to MJPEG is how you simulate or replay that pipeline for testing.
  • Frame-accurate review — Industrial inspection, scientific imaging, and video-evidence workflows need every frame addressable as a still. MJPEG guarantees that any byte offset can be aligned to a JPEG SOI marker (FF D8) and decoded, which is why frame-by-frame review tools and high-speed cameras still emit MJPEG.
  • Time-lapse and stop-motion assembly — When you have a folder of stills from an intervalometer or a stop-motion rig, an MJPEG container preserves the JPEGs untouched while making the result playable in VLC or QuickTime. No transcoding loss compared with re-encoding into H.264.
  • Legacy editing software compatibility — Older editors and capture devices that pre-date AVC accept MJPEG over AVI or QuickTime as a native intermediate. A JPEG-to-MJPEG step bridges modern still cameras with that workflow.
  • Browser playback without a video decoder — The 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.

JPEG vs MJPEG — How One Becomes the Other

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)

MJPEG vs H.264 vs H.265 — When MJPEG Still Wins

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)

MJPEG Quality Preset Quick Guide

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

Frequently Asked Questions

Why is my MJPEG so much larger than the source JPEGs combined?

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.

Does MJPEG store frame rate, or do I set it on playback?

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.

What plays a .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.

Should I use MJPEG or just keep the JPEG sequence?

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.

Can I add audio to an MJPEG?

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.

Why does my output look soft compared with the input JPEG?

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).

How many JPEGs can I batch into one MJPEG?

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).

Will the original JPEG quality be preserved if I pick "Highest"?

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.

Is anything uploaded to your servers?

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.

Rate JPEG to MJPEG Converter Tool

Rating: 4.7 / 5 - 86 reviews