MJPEG to MJPEG Converter

Convert MJPEG files to MJPEG 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.
Show All Options
File Compression
Preset
Video resolution
Trim

Why Convert MJPEG to MJPEG at All?

Because a .mjpeg file is not one thing. The extension names a bare run of JPEG frames written end to end with no container around them, and the files that arrive under that name vary enormously — a surveillance NVR dump at quantiser 2, a machine-vision capture at 4K, a webcam recording that a colleague swears "won't open". Sending one through this page re-encodes every frame with settings you choose, which is how you shrink a bulky capture, cut a smaller frame size out of an oversized one, or produce a normalised file when the original is choking whatever you fed it to.

What this page cannot do is copy your frames through untouched. The server always re-encodes: the JPEG data is decoded and compressed again, so this is a second lossy generation and not a repackaging. That is the single most important thing to understand before you decide whether the trip is worth it.

What a Raw .mjpeg File Does and Does Not Carry

Property What is stored
Structure Independent JPEG frames concatenated with no container, index or header
Frame coding Baseline JPEG per frame — every frame is a keyframe, nothing is predicted
Frame rate Not stored. A decoder assumes 25 fps, so a 15 or 30 fps capture plays at the wrong speed
Duration Not stored — a probe reports it as unavailable
Bitrate Not stored, at either stream or file level
Audio None. There is no container to put a track in
Timecode, chapters, subtitles None of these have anywhere to live
Typical origin IP cameras, NVR exports, USB webcams, capture cards, microscope and machine-vision rigs

We probed a raw .mjpeg built from a four-second 640 x 480 clip: ffmpeg reported it as a jpeg_pipe stream with duration=N/A and bit_rate=N/A, and assumed 25 fps for the 100 frames inside it. That absence of a declared rate is not something this conversion repairs — the output is the same kind of file and inherits the same assumption.

How to Convert MJPEG to MJPEG

  1. Upload Your MJPEG File: Drag the .mjpeg onto the page or click "+ Add Files". Several captures can be queued and every one of them runs with the settings you pick.
  2. Choose Constant Quality Rather Than the Preset: Video Codec offers a single entry, MJPEG, so the picture question is entirely about the quantiser. Switch File Compression from Quality Preset to Constant Quality; the numeric field is labelled CRF but runs on MJPEG's own 2 to 31 scale, opening at 5, where lower is better.
  3. Set Video resolution if the Frame Is Bigger Than You Need: Video resolution opens on Keep original. Resolution Percentage, Preset Resolutions, Width, Height and Width x Height are the alternatives, and on a surveillance or machine-vision capture a smaller frame saves far more than any quantiser change will.
  4. Convert and Download: Click Convert and save the new .mjpeg. Files upload over an encrypted connection, are re-encoded on our servers and are deleted automatically after a few hours — no sign-up, no watermark, never shared or made public.

The Quantiser Is the Only Lever That Moves the Picture

MJPEG is registered in our encoder as supporting neither constant nor variable bitrate, and the video processor skips bitrate-based rate control for it entirely, because the codec ignores those flags. What always reaches the encoder is -q:v. We confirmed the precedence directly: asking for a 20 Mbit/s bitrate alongside quantiser 20 produced a byte-for-byte identical file to quantiser 20 on its own.

So the practical steer is: use Constant Quality, and use the frame size. These are the numbers we measured re-encoding the same 100-frame 640 x 480 capture, which started at 2,113,655 bytes:

Setting Output size Notes
Constant Quality 2 2,452,741 bytes Larger than the source — the quantiser floor spends more than the original did
Constant Quality 5 (opens here) 2,113,399 bytes Essentially the source size
Constant Quality 10 1,320,235 bytes About 38% smaller, still clean on flat scenes
Constant Quality 20 960,311 bytes Visible JPEG artefacts on detail
Constant Quality 31 738,927 bytes The bottom of the scale
Quality 5 at 320 x 240 790,319 bytes Halving each dimension beats almost any quantiser move

The pattern is worth internalising: on an intra-only codec, quartering the pixel count does more for size than pushing the quantiser to its limit, and it does it without smearing the frames you keep.

Two Controls That Will Not Do What You Expect

Trim, on this source specifically. The Trim group renders and offers a Start time and a Duration. A Duration on its own works. A Start time above zero does not — the conversion seeks on the input side, and a container-less .mjpeg has no timestamps to seek against, so the encoder receives no frames and the job produces an empty file. We reproduced this at the command line: -ss 1 against a raw .mjpeg reports frame= 0 and writes zero bytes, while -ss 0 -t 2 against the same file writes 50 frames normally. If you need a section from the middle of a capture, convert it to a container first with MJPEG to MP4 and cut that in the video cutter.

The Audio Codec list. It renders on this page with MP3 preselected and a long list behind it, but the .mjpeg muxer has no audio codec at all — ffmpeg -h muxer=mjpeg lists a default video codec and nothing else. We fed it a source carrying an AAC track and the output came back with a single video stream. Nothing you choose in that dropdown changes the file. In practice this costs you nothing here, because an MJPEG source never had audio to begin with.

Frequently Asked Questions

Is this a lossless copy of my frames?

No, and it is worth being blunt about it. The frames are decoded and re-compressed on our servers with the settings you chose, so the output is a second JPEG generation on top of the first. We checksummed a source and its output at the same quantiser and they differ. The damage at a low quantiser is small — JPEG re-encoding at quality settings near the original is close to invisible on ordinary footage — but it is not zero, and it accumulates if you round-trip repeatedly. Keep the original capture if it is the master.

Why would anyone convert a file to its own format?

Three reasons come up regularly. Size: a camera or NVR that writes at a fixed low quantiser produces enormous files, and re-encoding at a higher quantiser or a smaller frame reclaims most of that. Frame size: a 4K machine-vision capture that only needs to be reviewed at 720p is a different file after a resize. Normalisation: some tools reject a specific MJPEG variant — an unusual subsampling, an embedded colour profile, an odd frame size — and a clean re-encode through a standard baseline JPEG path is often enough to get it accepted.

Will the converted file play at the right speed?

Only if the original did. A raw .mjpeg stores no frame rate, so decoders fall back to 25 fps, and a capture recorded at 15 or 30 fps has always played hurried or stretched. Nothing on this page declares a rate, so the output carries the same gap. Fixing it means telling a tool the true input rate as the file is read, and then writing the result into a container that can record it — which is what MJPEG to MP4 or MJPEG to MKV give you.

Why is the CRF field labelled CRF when MJPEG has no CRF?

Because that numeric input is shared across codec families, and CRF is the correct name for it on H.264-class encoders. MJPEG takes a quantiser instead. The field is range-limited to MJPEG's real scale — 2 to 31, lower is better — so it does the right thing; only the label belongs to another codec. Nothing is silently ignored: the value you type is the quantiser handed to the encoder.

Can I make the file a specific number of megabytes?

Not on this page, and that is a consequence of the codec rather than a missing feature. Once MJPEG is the resolved codec, the byte-size and bitrate modes are not offered, because the encoder does not act on a rate target. Set a quantiser and a frame size instead, and if you need a hard byte budget, convert to a codec built for one — MJPEG to MP4 exposes a Specific file size mode that genuinely aims at the number you type.

Does the conversion remove the interlace combing in my capture?

No. There is no deinterlacing anywhere in this pipeline, so a source captured from an interlaced feed keeps its field structure and the combing on moving subjects is re-encoded exactly as it stands. MJPEG capture from IP cameras and USB devices is almost always progressive, so this rarely comes up — but if you are working from an analogue capture card fed a 576i or 480i signal, deinterlace before uploading.

What happens to the aspect ratio if I resize?

If you leave Video resolution on Keep original, the stored pixel aspect passes through untouched. Any resize normalises pixels to square, which matters only if your capture was anamorphic — unusual for MJPEG, common for broadcast sources. Note too that the Preset Resolutions list sets height and lets width follow the source aspect, so it will not give you an exact raster; use Width x Height when a downstream tool needs specific dimensions.

Is .mjpeg the same thing as .mjpg or MJPEG inside an AVI?

The first two are the same: .mjpg and .mjpeg are both names for the raw frame stream, and the same muxer writes both. MJPEG inside an AVI or a MOV is a genuinely different object — the same per-frame JPEG coding, but wrapped in a container that records the frame rate, the duration and, where present, an audio track. If your problem is that nothing will play your raw stream properly, moving it into a container is the real fix: MJPEG to AVI keeps the frames intra-coded, and MJPEG to MP4 trades that for a far smaller file.

How large a capture can I upload, and what happens to it afterwards?

Free uploads are limited to 400 MB per file (1 GB on Basic, 4 GB on Pro) and 5 jobs at a time, and raw MJPEG is bulky in proportion to its picture quality — an hour of 1080p surveillance runs to many gigabytes, so trim first. Everything you send travels over an encrypted connection, is re-encoded on our servers, and both the upload and the finished file are deleted automatically after a few hours. There is no sign-up, no watermark, and nothing is shared or made public.

Rate MJPEG to MJPEG Converter Tool

★★★★✭
Rating: 4.9 / 5 - 55 reviews