Initializing... drag & drop files here
Supports: MJPEG
Motion JPEG is an intraframe-only codec: every frame is encoded independently as a baseline JPEG, with no inter-frame prediction (per the Wikipedia M-JPEG entry). That makes random-access frame extraction trivial — any frame can be decoded without reading neighbors — but it also means each frame already carries irreversible JPEG quantization. Re-encoding to JPEG for stills compounds that loss; PNG (an ISO/IEC 15948:2004 lossless raster format using DEFLATE) preserves the decoded pixels exactly, so the output is the best possible representation of what the camera or capture card recorded.
| Property | MJPEG (input) | PNG (output) |
|---|---|---|
| Type | Video (sequence of JPEG frames) | Still image |
| Compression | Lossy DCT (per-frame JPEG) | Lossless DEFLATE |
| Inter-frame prediction | None (intra-only) | N/A |
| Standard | ITU-T T.81 / ISO/IEC 10918 (JPEG) | ISO/IEC 15948:2004 |
| Transparency | No | Yes (alpha channel) |
| Bit depth | 8-bit per channel | 1, 8, or 16-bit per channel |
| Random frame access | Excellent (every frame decodable alone) | N/A (single frame) |
| Typical sources | IP cameras, webcams, NLE intermediates | Screenshots, web graphics, archives |
| Re-encoding penalty | Adds JPEG loss each pass | None — bit-exact across saves |
| Goal | Frame Selection | Multiple-Screenshots interval | Notes |
|---|---|---|---|
| One evidence still | Specific Frame | n/a | Enter the exact timestamp in seconds. |
| Storyboard / contact sheet | Multiple Screenshots | 1–10 seconds | One frame per N seconds; small output set. |
| Motion analysis | Multiple Screenshots | 0.1–0.5 seconds (2–10 fps) | Captures motion without 1:1 frame count. |
| Every recorded frame | Multiple Screenshots | match the source fps (e.g., 25–30 fps) | Largest output; expect thousands of PNGs for long clips. |
| Slow-motion review | Multiple Screenshots | 0.04 s (24 fps) up to 0.02 s (50 fps) | Use the framerate dropdown rather than seconds. |
MJPEG is a lossy, per-frame JPEG stream — its small size comes from quantizing high-frequency detail. PNG stores the decoded pixels losslessly with DEFLATE, which is far less aggressive on photographic content. A 1920×1080 frame that occupies ~150–300 KB inside an MJPEG stream typically becomes a 1.5–4 MB PNG. The PNG is bigger because it is no longer throwing information away — that is precisely the point for forensic, archival, or re-edit use cases.
Extract as PNG when you plan to crop, enhance, or composite the frame, or when the still is going into evidentiary or scientific records — re-saving as JPEG would add a second generation of DCT loss on top of the original encoding. Extract as JPEG (try our MJPEG to JPG tool) when storage cost matters more than fidelity, since each frame is already JPEG and re-encoding at high quality is essentially free in size terms.
M-JPEG is widely used by IP-based security cameras (Axis, Hikvision, Dahua), USB Video Class webcams, machine-vision cameras, older Nikon/Canon DSLRs in movie mode, and some drone capture cards. Microsoft also documents an AVI fourCC for storing M-JPEG, so many.avi files from CCTV systems are M-JPEG inside an AVI wrapper rather than true .mjpeg files. Frame-by-frame editors such as Avid and earlier Final Cut also used M-JPEG as an intermediate codec because every frame is independently decodable.
Yes. Choose Multiple Screenshots and either set seconds-per-frame (1, 0.5, 0.1) or use the framerate dropdown (1, 2, 5, 8, 10, 12, 15, 20, 24, 25, 30, 50 fps) to match the source. A one-hour clip recorded at 1 fps yields 3,600 PNGs; at 15 fps it yields 54,000. Extraction is sequential, so plan the capture rate around the disk space and review time you have — for routine review, 1 fps is usually enough to spot motion events.
PNG compression is "tunable but not lossy." The slider controls how aggressively DEFLATE searches for matches: 1 is fastest with the largest files, 10 is slowest with the smallest files, and 6 is the libpng default that balances both. Pixel data is bit-identical at every level. Use a low setting if you are dumping thousands of frames and want speed; use 9 or 10 if you are archiving a small set and want minimum bytes on disk.
By default, PNGs from an opaque MJPEG source are written as RGB (24-bit) without an alpha channel, since the source has no transparency to preserve. PNG itself supports an alpha channel and you can layer transparency in a downstream editor like GIMP or Photoshop — for example, masking out a privacy region before sharing a frame.
Yes. Use Trim MJPEG to clip the segment containing the event you care about, then run that shorter file through this MJPEG-to-PNG extractor — the multiple-screenshots interval will then sample only your trimmed window. This is faster than extracting every frame and discarding the irrelevant ones, and it keeps your PNG output set small enough to review by hand.
.avi file — will this tool still work?If the AVI contains an M-JPEG video track, rename the extension to .mjpeg or first convert via AVI to MJPEG. If it contains H.264 or another inter-frame codec, you would not actually have an M-JPEG source — extract frames using the matching converter for that codec instead (for example our MP4 to MJPEG intermediate, then run this page).
By default, "Keep original" preserves the native resolution of the MJPEG track — typically 640×480 for legacy webcams, 1280×720 for mid-tier IP cameras, or 1920×1080 for HD CCTV. You can downscale by Resolution Percentage, pick a preset (4320p down to 144p), or type explicit width/height. Upscaling is allowed in the UI but cannot recover detail the source did not capture — the JPEG quantization is the ceiling on real resolution.