MJPEG to JPG Converter

Convert MJPEG files to JPG format online. Free, fast, no watermarks.

Initializing... drag & drop files here

Supports: MJPEG

OptionsAdvanced Options - Our defaults are optimized for the best results. We recommend you keeping the defaults unless you have a specific need.
Image Compression
Quality preset
Higher quality settings preserve more detail but result in larger files. Lower settings reduce file size by increasing compression.
Image resolution
File extension
Frame Selection
Time (seconds)
Capture a single frame at the specified time. For example, 2.100 means 2 seconds and 100 milliseconds into the video.

MJPEG to JPG: What This Walk-through Covers

A raw .mjpeg file is a video stream — a run of JPEG frames written back to back with no container around them — so "convert it to JPG" really means "pull a still picture out of it". This walk-through shows how to land on the exact frame you want, why the timestamps in a camera dump lie to you, and how to fix the errors that show up when footage comes off an IP camera or capture card.

How to Convert MJPEG to JPG

  1. Upload Your MJPEG File: Drag the .mjpeg onto the page or click "+ Add Files". Several files can queue at once, and each one is handled separately. Uploads travel over an encrypted connection and convert on our servers.
  2. Pick the Frame under Frame Selection: Specific Frame is active with Time (seconds) at 0, which returns the opening frame. Enter a different number of seconds to seek, or switch to Multiple Screenshots and set a Capture Rate to harvest a series of stills.
  3. Set the Quality Preset or Image Resolution: Quality Preset starts on Very High (Recommended) and runs from Highest to Lowest; Specific file size aims at a byte budget instead. Image resolution leaves the frame at its native size until you choose a percentage, a preset height, or your own width and height.
  4. Convert and Download: Click Convert and save the .jpg. No sign-up, no watermark.

Walk-through: Landing on the Exact Frame You Want

The one thing that trips people up is that a raw MJPEG has no clock. There is no container, so there is no duration, no bitrate and no frame-rate field — decoders fall back to an assumed 25 fps and count frames from there. We confirmed this on a freshly built stream: 30 frames recorded at 10 fps report Duration: N/A, bitrate: N/A and then play as 1.2 seconds rather than the three seconds they actually represent.

The practical consequence is that Time (seconds) addresses frames, not wall-clock time. To reach a particular frame, divide its number by 25 and type that:

Camera capture rate Frames written in 60 s of real recording Time to type for the final frame
5 fps 300 12
10 fps 600 24
15 fps 900 36
25 fps 1500 60
30 fps 1800 72

If you would rather sample the whole file and pick the good frame afterwards, use Multiple Screenshots instead:

Frame Selection setting What comes back Best for
Specific Frame, Time 0 The opening frame A thumbnail or a quick look at what the file contains
Specific Frame, Time N One still from N seconds into the file's own clock A moment you can already locate
Multiple Screenshots, 0.1 s A still every tenth of a second Dense sampling of a short capture
Multiple Screenshots, 1 s One still per second of file time A contact sheet of a long recording
Multiple Screenshots, 10 s One still every ten seconds Skimming hours of surveillance footage

Quality is the other decision, and it is simpler. Very High (Recommended) is the starting point and is the right answer for almost everything. Move to Highest when the frame is evidence, a measurement, or a plate that will be enlarged; drop to Medium or lower only when you need a small file for a report or a ticket attachment. Specific file size is there when a system imposes a hard byte limit — set the number and the encoder works backwards to it.

Common Errors and How to Fix Them

  • "Unsupported format" or "Codec not installed" when you double-click the file — Your player has no MJPEG decoder, or it cannot parse a stream with no container. This is the usual reason people arrive here. Converting to .jpg sidesteps it entirely, because the result is an ordinary still image.
  • You renamed .mjpeg to .jpg and got one picture or an error — The file holds hundreds or thousands of concatenated frames. A viewer either shows the first and stops, or rejects the whole thing. Renaming cannot separate frames; the conversion decodes the stream and writes a real single-image file.
  • The frame you get is not the moment you wanted — You typed wall-clock seconds into Time (seconds). Use the table above to convert the frame number to the file's 25 fps clock.
  • The extracted image looks soft or blocky — That texture is usually already in the source. MJPEG compresses every frame as an independent JPEG, and cameras run that compression hard to keep bandwidth down. Re-converting at Highest preserves what is there but cannot restore detail the camera discarded.
  • Part of the recording is garbled — Some hardware encoders emit JPEG data with trailing bytes after the final restart marker, and interrupted writes leave truncated frames. Seek to a timestamp before the damage and extract from there.
  • The output is bigger than the source frame — Raising the preset to Highest re-encodes with far less quantisation than the camera used, so the file can grow. Drop back to Very High or set a Specific file size.

When This Doesn't Work

This tool reads the stream you upload and writes an image from it, so it cannot recover what was never recorded. Frames destroyed by a truncated write are gone, and no setting rebuilds them. Nor is there any audio to keep — a raw MJPEG carries video frames only, so nothing is lost by extracting a still. If the file is a .avi or .mov that merely uses the MJPEG codec inside a container, upload it under its real extension instead; the parsing rules are different, and the container-based converters handle it properly. If you want the moving footage rather than a still, wrap it into a playable file with MJPEG to MP4.

Frequently Asked Questions

Should I pick JPG or JPEG in the File extension list?

Either. The File extension control offers both and starts with neither pre-selected, so it exists purely to let you force the spelling your workflow expects. The bytes are identical — this converter runs .jpg, .jpeg and .jfif through exactly the same encoder, so the only thing that changes is the characters after the dot. Pick .jpg unless a system you feed specifically demands one of the others.

Which frame do I get if I change nothing?

The first one. Frame Selection opens on Specific Frame with Time (seconds) at 0, so a straight upload-and-convert returns the opening picture of the stream.

How do I extract every frame rather than one?

Choose Multiple Screenshots and set the Capture Rate to its fastest option, one still every 0.1 seconds. That is a sample rather than a literal frame-by-frame dump, which is deliberate: at the assumed 25 fps an hour of footage is 90,000 frames, and most people looking through camera dumps want a readable sample, not 90,000 files.

Does the conversion add another generation of JPEG loss?

One, and only one. The chosen frame is decoded to a lossless PNG intermediate first, then encoded a single time to JPEG at your preset — the intermediate stage costs no quality. So the output carries the compression the camera originally applied plus one re-encode. Set Quality Preset to Highest when that single generation matters.

Can I make the JPG fit a fixed size limit?

Yes. Switch Image Compression to Specific file size, type the number and choose Bytes, Kilobytes or Megabytes. Turning on Auto Scale lets the converter reduce the pixel dimensions when the byte target is too tight to hit by quantisation alone, which is usually better than an extremely low quality setting on a detailed camera frame.

Is a frame pulled this way good enough for evidence or measurement?

It is as good as the frame in the file, which is the real limit. MJPEG is intra-frame only, so every frame is a complete, independently compressed picture with no interpolation from neighbouring frames — there is no motion-compensation smearing to argue about, which is exactly why machine-vision and surveillance gear uses it. Extract at Highest and keep the original .mjpeg alongside the still.

Will the JPG keep the camera's timestamp or metadata?

Do not count on it. A raw MJPEG stream has no container to hold recording dates, camera identifiers or GPS, so there is usually nothing of that kind to carry across — any date you see burned into the picture is pixels, not metadata, and it survives because it is part of the image. Keep the original file if provenance matters.

Can I get the same image with a .jfif extension?

Yes — MJPEG to JFIF writes the identical image data under that extension, which is occasionally what an older imaging or medical system expects.

How are my files handled and how long are they kept?

Files are uploaded over an encrypted connection, converted on our servers, and deleted automatically a few hours afterwards. No sign-up, no watermark, and nothing is shared or made public — worth knowing given how much raw MJPEG comes from security cameras and clinical capture devices.

Rate MJPEG to JPG Converter Tool

Rating: 4.8 / 5 - 56 reviews