Skip to main content
Tracemute Clean a file

← All formats

MP4

The dominant video container. ISOBMFF — shared with HEIC — wrapping H.264 / HEVC / AV1 streams.

Extensions
.mp4 · .m4v
MIME
video/mp4
Strip
Lossless
Updated
2026-05-14

MP4 is the format your phone records video into, the format streaming services serve, the format social media re-encodes uploads into. It’s built on the ISO Base Media File Format (ISOBMFF) — the same container family as HEIC — and shares parser code with it inside Tracemute.

What it carries

MP4 metadata lives in three kinds of boxes, all under or alongside the moov (movie) box:

  • udta (user data) — the dump zone for QuickTime-era atoms. Children are 4-character types prefixed with © (copyright sign, byte 0xA9):
    • ©xyz — GPS location as an ISO 6709 string like +50.0755+014.4378+325.000/
    • ©day — creation date
    • ©mod — camera model
    • ©too — software / encoder
    • ©nam / ©cmt / ©key — title / comment / keywords
    • ©mak / ©swr / ©ART / ©cpy — make / authoring software / artist / copyright
  • moov/meta — the modern Apple iTunes-style metadata structure. Two children:
    • keys — an indexed table of Apple namespace identifiers (com.apple.quicktime.location.ISO6709, .make, .model, .software, .creationdate, .content.identifier)
    • ilst — typed values, indexed by 1-based u32 into the keys table. Modern iPhone MOVs put everything here.
  • uuid — vendor extension boxes. The Adobe XMP UUID (be7acfcb-97a9-42e8-9c71-999491e3afac) marks an XMP packet; Sony / Canon / GoPro / DJI all have their own UUIDs for proprietary telemetry.

What’s unique

The com.apple.quicktime.content.identifier key in ilst is the Live Photos pairing UUID, same as HEIC’s AssetIdentifier. A leaked HEIC + MOV pair can be conclusively linked even if filenames are scrubbed. See the MOV page for how this manifests on iPhone-recorded video specifically.

GoPro and DJI write dedicated metadata tracks inside moov/trak with a handler type of gpmd — these contain per-frame GPS, gyroscope, and accelerometer samples. The full flight log of your drone is in there.

What Tracemute does

The handler uses a free-atom strategy: metadata atoms aren’t deleted, they’re rewritten in place to type free with their body zeroed. This means:

  1. File size is unchanged.
  2. Atom sizes don’t shift.
  3. The sample table (stco / co64 chunk offsets) doesn’t need patching.
  4. The audio/video sample data (mdat) is byte-identical to the input.

The walker scans top-level boxes, descends into moov, descends further into moov/trak, and frees every udta / meta / uuid it finds. Apple keys+ilst is parsed into typed dossier fields before being freed wholesale.

What survives

  • mvhd / tkhd / mdhd creation_time and modification_time fields. These are decoder-required header timestamps; even exiftool’s -all= doesn’t remove them.
  • GoPro gpmd telemetry tracks — kept in v1 because removing a whole track shifts sample-table offsets across the file. Their containing udta still gets freed, so the personally-identifying tags are gone but the per-frame samples remain. Full removal is targeted for v1.1 (see “B3” in the roadmap).
  • The actual video and audio sample streams. No transcoding ever.

Where this format shows up

Real situations that hand you a MP4 file.