MJPEG to HEIF Converter

Convert MJPEG files to HEIF 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
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 HEIF: Pulling One Frame Out of a JPEG Sequence

An .mjpeg file is not really a video in the way an MP4 is. It is a run of complete JPEG images written back to back, with no container index, no timestamps and no audio track — Motion JPEG in its rawest form, the shape security DVRs, microscope cameras, machine-vision rigs and older webcams still write. HEIF is the opposite kind of thing: a modern ISO container that stores one still image compressed with a video codec, which is why a HEIF of the same frame is typically smaller than the JPEG it came from.

This page decodes a frame out of that sequence and re-encodes it as HEIF. Everything below is about the two decisions that actually matter — which frame you get, and how hard the encoder squeezes it.

How to Convert MJPEG to HEIF

  1. Upload Your MJPEG File: Drag the .mjpeg onto the page or click "Add Files" to browse. Several files can be queued and they all run with the same settings.
  2. Choose Frame Selection: This group opens on Specific Frame with its Time (seconds) box at 0. On a raw .mjpeg that zero is the only timestamp that works — see the walk-through below. Switch to Multiple Screenshots and pick a Capture Rate to reach anything later in the sequence.
  3. Set Quality Preset and Image resolution: Image Compression opens on Quality Preset at Very High (Recommended); Specific file size with its Auto Scale toggle is the alternative when you have a byte budget. Image resolution opens on Keep original, with Resolution Percentage, Preset Resolutions, Width, Height and Width x Height available.
  4. Convert and Download: Click Convert and save the .heif. Files are uploaded over an encrypted connection, processed on our servers, and deleted automatically after a few hours — no sign-up, no watermark.

Walk-through: Why Time (seconds) Only Works at Zero Here

Frame extraction seeks the input stream before decoding. That works on any container that carries an index — MP4, MKV, MOV, even Ogg — because the demuxer can jump to a timestamp. A raw .mjpeg has none of that. ffprobe identifies it as jpeg_pipe, "piped jpeg sequence", and reports duration=N/A, bit_rate=N/A and no frame count; the frame rate you see is a 25 fps assumption, not something stored in the file.

The consequence is concrete and reproducible: on a 100-frame .mjpeg, a Specific Frame time of 0 returns the first image, and 0.5, 1, 2 and 3 all return nothing at all, because the seek lands nowhere in a stream with no positions to land on. So:

  • If you want the first frame, leave Frame Selection alone. This is the fast path and it works.
  • If you want a later frame, switch to Multiple Screenshots. That path samples with a frame-rate filter instead of seeking, so it walks the sequence properly and returns one .heif per sampled frame. At the default 1 second per frame on a 25 fps assumption you get roughly every 25th JPEG; the Capture Rate list runs from one frame every 0.1 second up to one every 10 seconds.
  • If your file came from a camera as .avi or .mov with an MJPEG track, convert that instead of the raw stream — a real container has an index and Specific Frame works normally.

There is nothing to recover on the audio side: a raw Motion JPEG stream carries picture data only, so no soundtrack is being discarded.

What the .heif Actually Contains

HEIF is ISO/IEC 23008-12, Part 12 of the MPEG-H suite, introduced in 2015 by MPEG. The container is codec-agnostic — it can hold HEVC, AV1, AVC, VVC, JPEG and more — and the standard reserves the .heic extension for the HEVC-coded case specifically. The encoder here writes HEVC and stamps the file with the heic major brand, so what you download is, by the specification's own naming rule, a HEIC that has been given a .heif name because that is the extension you asked for.

That matters in exactly one practical way: a program that filters file pickers on .heic will not show your .heif, and renaming it fixes that with no re-encoding. If you would rather not rename anything, MJPEG to HEIC writes the identical bytes under the conventional extension.

Property Raw .mjpeg source .heif output
What it is Concatenated complete JPEG images, no container A single still image in an ISO base media container
Standard JPEG (ITU-T T.81 / ISO/IEC 10918-1) per frame ISO/IEC 23008-12, MPEG-H Part 12, 2015
Image codec JPEG, one independent frame at a time HEVC (High Efficiency Video Coding)
Brand written here n/a heic
Duration / frame count stored No — the demuxer reports N/A for both n/a, it is one picture
Audio None None
Transparency None Supported by the format, but a video frame has none to carry
Colour depth 8 bits per channel 8 bits per channel as written here
Typical size for the same frame Largest Usually smaller than the equivalent JPEG at matched quality

Quality Preset and the Number It Sends the Encoder

Each preset maps to a fixed quality value handed to the HEIF encoder. These are the actual values:

Quality Preset Encoder quality value What it is for
Highest 100 Maximum effort; the largest file, with very little visible gain over 95
Very High (Recommended) 95 The shipped default; visually close to the decoded frame
High 90 A sensible balance for a photo library or an archive
Medium 80 Clearly smaller, with mild softening on fine texture
Low 70 Compression becomes visible on edges and gradients
Very Low 60 Blocking shows in flat areas
Lowest 50 Thumbnails and contact sheets only

Two things are worth being blunt about. First, the source frame is already a JPEG, so the HEIF is a second lossy generation — no preset can add detail the JPEG stage discarded, and on a low-bitrate DVR stream the artefacts you are paying to reproduce are already baked in. Second, HEVC and JPEG do not share a quality scale even though both dials run 0-100, so a HEIF at 95 is not "the same quality" as a JPEG at 95; it is simply the encoder's own top-of-range setting. Leave the default unless you have a size constraint, and when you do, Specific file size is a more direct lever than guessing between presets.

Frequently Asked Questions

Why does the Time (seconds) box return nothing unless I leave it at zero?

Because a raw .mjpeg has no timeline to seek into. The frame extractor performs an input-side seek, which needs an index or timestamps, and the JPEG-sequence demuxer supplies neither — ffprobe reports no duration and no bitrate for these files at all. A time of 0 starts at the first image and works; any other value positions nowhere and the job produces no image. Use Multiple Screenshots instead: it samples with a frame-rate filter rather than seeking, so it reaches every part of the sequence.

How many files will Multiple Screenshots give me?

One .heif per sampled frame, and on a long sequence that number gets large quickly. The Capture Rate opens at 1 second per frame, which on the demuxer's assumed 25 fps works out to roughly every 25th JPEG in the file. If you only need to find a usable moment, start at the coarse end — 5 or 10 seconds per frame — see which one you want, then re-run at a finer rate if you need something in between.

Is the file I download a HEIF or a HEIC?

Both descriptions are true, and the extension is the only difference. The encoder writes HEVC-coded image data and stamps the container with the heic brand, which is what the ISO/IEC 23008-12 specification reserves for HEVC content. The page names the download .heif because that is the target you selected. If a program refuses it, rename the file to .heic — nothing inside changes — or use MJPEG to HEIC to get the conventional extension straight away.

Will the HEIF be smaller than the JPEG frame it came from?

Usually yes, at the same visual quality, because HEVC intra-coding is a much newer design than baseline JPEG. But the saving is measured against a re-encode, not against the original: the frame is decoded and compressed again, so at the top presets you can spend more bytes than the source JPEG occupied while reproducing artefacts the JPEG already had. If minimum size is the goal, drop to Medium or use Specific file size rather than trusting the format to shrink things by itself.

Why does my HEIF not open on Windows or in my photo app?

HEIF support depends on an HEVC decoder being present. Apple platforms have handled the format natively since iOS 11 and macOS High Sierra in 2017, but Windows needs two separate free packages from the Microsoft Store — the HEIF Image Extension for the container and the HEVC Video Extensions for the codec inside it, which Microsoft's own documentation states the image extension cannot read .heic-style content without. Plenty of desktop editors still refuse the format outright. If you just need a picture that opens everywhere, MJPEG to JPG or MJPEG to PNG is the safer target, and HEIF to JPG converts back if you have already made one.

Can I keep the full resolution of the camera frame?

Yes — Image resolution opens on Keep original, so the still comes out at the source frame's pixel dimensions. Preset Resolutions set the height and let the width follow the source aspect ratio; Width x Height forces both. Upscaling past the source is not worth doing here, because a Motion JPEG frame carries only the detail the camera's JPEG encoder recorded and enlarging it just interpolates.

Does the HEIF keep any camera metadata from the MJPEG?

Very little, because there is very little to keep. A raw Motion JPEG stream has no container-level metadata — no creation date, no camera model, no GPS — and per-frame JPEG headers from DVR and machine-vision encoders are usually bare. Whatever the decode-and-re-encode step can carry through is carried, but do not plan an archive around it. If provenance matters, keep the original .mjpeg alongside the stills.

Can I get a moving image instead of a single still?

Not from this page — HEIF here is a single-picture target and the output is one image per extracted frame. For motion, convert the sequence to a real video container with MJPEG to MP4, which gives you something that plays in a browser, on a phone and in any editor. Multi-frame HEIF image sequences exist in the specification, but this conversion does not produce one.

What happens to my file after the conversion?

It is uploaded over an encrypted connection, decoded and re-encoded on our servers, and both the upload and the resulting image are deleted automatically after a few hours. Files are never shared or made public, and there is no sign-up, no watermark and no email required.

Rate MJPEG to HEIF Converter Tool

Rating: 4.8 / 5 - 88 reviews