Initializing... drag & drop files here
Supports: MJPEG
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.
.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.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..jpg. No sign-up, no watermark.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.
.jpg sidesteps it entirely, because the result is an ordinary still image..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.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.
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.
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.
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.
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.
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.
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.
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.
Yes — MJPEG to JFIF writes the identical image data under that extension, which is occasionally what an older imaging or medical system expects.
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.