JPEG
The web's most common photo format. Where most metadata lives.
- Extensions
- .jpg · .jpeg
- MIME
- image/jpeg
- Strip
- Lossless
- Updated
- 2026-05-14
JPEG is the format your iPhone writes, your camera writes, your Android writes, your old Photoshop save-for-web writes. It’s also the format Facebook, Instagram, X, and Reddit re-encode photos into when you upload them — adding their own tracking metadata in the process.
What it carries
JPEG metadata lives in APP segments — header chunks marked with 0xFFE0 through 0xFFEF. Most data sits in APP1 (EXIF + XMP), but real-world files can have a dozen or more APP segments from different writers.
- EXIF (APP1, prefix
Exif\0\0) — Make, Model, GPS, lens info, body serial number, exposure settings, the embedded thumbnail JPEG. - XMP (APP1, prefix
http://ns.adobe.com/xap/1.0/) — Adobe’s XML metadata wrapper. Carries creator, rights, edit history, Google’sGCamera:MicroVideoOffsetpointing at a Motion Photo trailer. - Photoshop IRB (APP13) — legacy IPTC keywords, copyright, slug names that survive cross-app round-trips.
- Apple AssetIdentifier — lives inside MakerNote at tag 17. The UUID that pairs a Live Photo’s HEIC with its MOV.
- FBMD (APP1-11) — Facebook Media Download watermark. Injected when you save a JPEG from Facebook or Instagram. A hex-encoded tracking ID that survives uploads.
- MPF (APP2) — multi-picture metadata for dual-camera burst shots.
- C2PA Content Credentials — JUMBF-wrapped device + firmware fingerprints. The “this photo was taken by a real camera” provenance feature.
- Embedded thumbnail — a tiny JPEG inside EXIF that some editors leave unchanged when you crop the main image. Cropping for privacy doesn’t help if the thumbnail still shows the original frame.
After the EOI marker
Three Android phone manufacturers append a full MP4 video after the JPEG’s End-of-Image marker:
- Samsung Motion Photo — bytes-after-EOI containing a real MP4 with its own GPS and accelerometer track.
- Google Pixel — pointed at by the XMP
GCamera:MicroVideoOffsetfield. - Some Huawei firmware — variant of the same pattern.
These trailers are invisible to most image viewers (which stop reading at EOI) but exiftool, ffprobe, and most forensic tools find them.
What Tracemute does
The handler runs a segment filter with an allow-list: JFIF (APP0), ICC profile (APP2 with the right prefix), and Adobe APP14 colour transform. Everything else is dropped. The trailer detection then scans for bytes after EOI and trims them if present.
No re-encoding. The Huffman-coded image data between SOS and EOI is byte-identical to the input.
What survives
The ICC colour profile is kept by default — removing it changes how the image renders on wide-gamut displays. This is a defensible trade: ICC profiles are device-class fingerprints (sRGB vs Display P3 etc.) but not user-identifying. If you need it gone too, exiftool’s -icc_profile= will do it after Tracemute.
Where this format shows up