Skip to content
CreatorPrivacyKit

Remove MP4 metadata: boxes zeroed in place, and the dates that stay

Remove MP4 metadata: boxes zeroed in place, and the dates that stay?

The cleaner does not re-encode video. It overwrites metadata boxes with zeroed free padding so the file keeps its length and its frames. That has a consequence for creation dates, which this page measured. Evidence checked 18 October 2026. Cleaner comparison measured 28 October 2026.

C2PA: Coalition for Content Provenance and Authenticity; C2PA specification 2.4

Last updated

The cleaner does not re-encode video. It overwrites metadata boxes with zeroed free padding so the file keeps its length and its frames. That has a consequence for creation dates, which this page measured.

Evidence checked 18 October 2026. Cleaner comparison measured 28 October 2026.

Where MP4 and MOV keep metadata

BoxHolds
moov/udtaUser data: titles, comments, tool names. QuickTime tags with a ©-prefixed name, such as ©xyz for GPS, live here.
moov/udta/meta, ilst, keysiTunes-style and keyed tags
loci3GPP location
uuid, xml Vendor blocks, XMP, and other XML
c2paC2PA manifest
mvhd, tkhd, mdhdCreation and modification times, track data, display matrix

References: the Apple QuickTime file format documentation and the ExifTool QuickTime tag list.

Recorded run in the browser

Browser run on 2026-10-02 in Chrome/154.0.8037.92, using the live Metadata Cleaner on the homepage. The block table below was computed afterwards by this site's own parser on the input and output files, which are published with the metadata removal report.

BlockBefore (bytes)After (bytes)Result
User data (moov/udta)98—Removed
Metadata box (moov/udta/meta)90—Removed
Tag list (moov/udta/meta/ilst)45—Removed
Zeroed free/skip padding (1 box)8106Kept

Fields read before and not after: Encoder = Lavf60.16.100. Still readable after: Major brand = isom; Compatible brands = isom, iso2, avc1, mp41; Duration = 1.000 s; Resolution = 64×48; Rotation = 90°; Track handler = video; Video codec = avc1. The 64×48 fixture is rotated by a display matrix, which the cleaner leaves in place: ffprobe rotation on the cleaned MP4 is -90. The cleaner strips user-data boxes. This measurement is the display matrix result for this file.

Engine runs on three more files

On 2026-10-18 the same sanitizer module the homepage imports (src/metadata-cleaner/iso-bmff.js) was run in Node on three repository fixtures. This is an engine run, not a browser run.

FileBefore (bytes)After (bytes)Fields no longer readableTime fields still readable
sample-phone-recording.mp42,0792,079Title, Encoder, Commentnone
sample-quicktime-clip.mov2,0312,031Title, Software, Description, Commentnone
mc-vid-h264-aac-1s.mp47,2097,209none readableCreation time, Modification time

The third file carries a movie-header time of 2026-10-01T00:00:00Z. It is still readable after cleaning, so that file does not pass a check for leftover dates. A creation time shows when the clip was made. If that matters, check it with the Video Metadata Viewer and decide before you share.

Four cleaners on one tagged file, measured 28 October 2026

On 2026-10-28, ffmpeg version 6.1.1-3ubuntu5 and ExifTool 12.76 on 13th Gen Intel(R) Core(TM) i9-13900K (Linux 7.0.0-38-generic x86_64) built one 320×240, 1 second file: lavfi testsrc, a 1000 Hz sine, libx264, AAC, title, comment, creation_time 2020-01-15T12:00:00Z, and +faststart. One synthetic file. One video track and one audio track. No phone data track, no C2PA box, no thumbnail stream. The first GPS write, -QuickTime:GPSCoordinates=48.858222 2.294500, exited 1. ExifTool printed: Warning: Error converting value for ItemList:GPSCoordinates (PrintConvInv) Nothing to do.. The second write, -GPSCoordinates=48.858222, 2.294500, exited 0. ExifTool then printed ItemList:GPSCoordinates as 48 deg 51' 29.60" N, 2 deg 17' 40.20" E.

MethodBytesmdat offsetudta scanTitleGPSCreateDateEncoderSHA-256
Tagged source18,7612,632udta 210 payload bytesFixture Title48 deg 51' 29.60" N, 2 deg 17' 40.20" E2020:01:15 12:00:00Lavf60.16.10067d6c582aac59b610b1a92970775054a9f91bb4fef544f769315fda185743a41
sanitizeIsoBmff18,7612,632noneabsentabsent2020:01:15 12:00:00absent00947c1aa674301bc32a57a21c21c7820c43c850ae51d6936c889fc93d7dd7c5
exiftool -all=18,5432,414noneabsentabsent2020:01:15 12:00:00absent0aa368f31a9c3be104937dbb7a2870c2fc473b7b2cc9700b914d5510fc96920d
ffmpeg -map_metadata -1 -c copy18,64140udta 90 payload bytesabsentabsent0000:00:00 00:00:00Lavf60.16.100461fd52d4a33ed3b66892272a77b08a313baadb4b2c0357984c6488add0370fc
ffmpeg video+audio map, metadata off, bitexact18,60440udta 53 payload bytesabsentabsent0000:00:00 00:00:00absent337e7623a83e1f17cd106acd9e07e7cc62304ad20605aae524431e0c033bddac

The mdat payload SHA-256 is eacdcc72bee3bda6907cf171b63957bb59b1a5a64b6adcb670f73352350b5a40 on every row. mdat size stayed 16,129 bytes. Probed video bitrate stayed 57,704 bps and audio stayed 69,775 bps. sanitizeIsoBmff, the module the homepage cleaner imports, kept the file at 18,761 bytes and the mdat offset at 2,632. Title, comment, GPS, encoder, HandlerType Metadata, and HandlerVendorID were absent after that run. CreateDate still read 2020:01:15 12:00:00. HandlerDescription still read VideoHandler and SoundHandler.

FileShot's metadata guide, dated 1 July 2026 and read on 28 October 2026, gives ffmpeg -i input.mp4 -map_metadata -1 -c copy output.mp4 and exiftool -all=. Their check says a successful removal shows structural metadata and no GPS, camera model, software name, or author. On this file the simple copy left ItemList:Encoder at Lavf60.16.100 and QuickTime:CreateDate at 0000:00:00 00:00:00. The GPS tag was absent. exiftool -all= left CreateDate at 2020:01:15 12:00:00.

AI Metadata Cleaner's bulk-video post, dated 27 September 2026 and opened earlier on 28 October 2026, compared exiftool -all= and ffmpeg copy commands on five of their videos. They reported a bitexact video-and-audio map clean and byte-identical on those files, and they published no byte counts or hashes for them. The strict copy on this fixture is ffmpeg -y -i in.mp4 -map 0:V -map 0:a? -map_metadata -1 -map_metadata:s -1 -map_chapters -1 -fflags +bitexact -flags:v +bitexact -flags:a +bitexact -c copy out.mp4. It wrote 18,604 bytes, with udta 53 payload bytes, CreateDate 0000:00:00 00:00:00, and HandlerType Metadata. The encoder tag was absent. The records are in docs/evidence/runs/2026-10-28-mp4-three-way.json.

When the cleaner refuses a file

The cleaner fails closed on files it cannot rewrite safely: a truncated box, a size of zero that runs to the end of the file, fragmented MP4 (trun or saio), stz2 sample sizes, or a sample range outside mdat. The row shows an error and no download button. The repository note docs/tool-reports/mp4-cleaner-repair.md lists every code.

Check your own video

Clean a copy in the Metadata Cleaner. Then compare both files in Verify metadata removed, which lists boxes and readable fields for MP4 and MOV and flags leftover dates. For size, not metadata, see the Video Compressor.

FAQ

Does cleaning an MP4 re-encode the video?

No. The cleaner rewrites box types in place and zeroes their payload. mdat, the sample tables and the coded frames are not touched. The output has the same byte length as the input. On the 28 October 2026 file the length stayed 18,761 bytes and the mdat payload SHA-256 stayed eacdcc72bee3bda6907cf171b63957bb59b1a5a64b6adcb670f73352350b5a40.

Does exiftool -all= remove an MP4 creation time?

On this file, QuickTime:CreateDate still read 2020:01:15 12:00:00 after exiftool -all=. The file went from 18,761 bytes to 18,543 bytes. ExifTool was 12.76.

What did ffmpeg -map_metadata -1 leave on this file?

Title, comment, and GPS were absent. ItemList:Encoder still read Lavf60.16.100. QuickTime:CreateDate read 0000:00:00 00:00:00. The scan found udta 90 payload bytes. The file was 18,641 bytes, and the mdat payload hash matched the source.

Why is the output the same size?

Removed boxes become zeroed free boxes of the same size. In the recorded run the udta, meta and ilst boxes (98 bytes in all) turned into padding and the file stayed at 1,881 bytes.

Are creation and modification times removed?

No. The engine run on a fixture with a movie header time (mc-vid-h264-aac-1s.mp4) still showed Creation time and Modification time after cleaning. The cleaner's list of neutralized atoms has no mvhd, tkhd or mdhd entry.

Is the rotation removed?

No. The display matrix stays so a phone video does not turn sideways. The sealed report scores that case partial for this reason.

More tools

Metadata Cleaner · Verify metadata removed · Image Metadata Viewer · Removal benchmark