Skip to main content
Tracemute Clean a file

← All formats

AVI

Microsoft's 1992 RIFF-based video container. Still common from dashcams and camcorders. Metadata replaced in place with JUNK.

Extensions
.avi
MIME
video/x-msvideo
Strip
Lossless
Updated
2026-05-27

AVI is the format dashcams write, the format budget action cameras default to, the format legacy camcorders and screen recorders still emit. Microsoft introduced it in 1992 and it never quite went away — partly because the RIFF chunk format underneath is dead simple to write, and partly because the container is unencumbered by patents.

If a video file is older than ten years or comes off a cheap recording device, there’s a good chance it’s AVI inside.

What it carries

AVI is a RIFF container — the same chunked structure as WAV audio and WebP images. Top-level layout:

  • RIFF outer container with form type AVI .
  • LIST hdrl — stream descriptors (avih main header, strh + strf per stream). Required for playback.
  • LIST INFOthe canonical metadata target. Sub-chunks with 4-character IDs:
    • INAM — title
    • IART — artist / author
    • ICMT — comments
    • ICOP — copyright
    • ICRD — creation date
    • IENG — engineer
    • IGNR — genre
    • ISFT — software (the encoder name)
    • ITCH — technician
    • ISTD — production studio
    • ISTR — starring
  • IDIT — camcorder digitisation timestamp (DV cameras embed this directly in hdrl).
  • ISMP — SMPTE timecode.
  • LIST movi — actual audio + video sample data.
  • idx1 — playback index. Stores offsets RELATIVE to the start of the movi LIST.
  • OpenDML AVI 2.0: LIST odml headers and ix## super-index chunks with ABSOLUTE file offsets (used for files larger than 1 GB).

What’s unique

The OpenDML super-indices (ix00, ix01, …) carry absolute file offsets. Naively deleting a metadata chunk shifts every byte after it and invalidates those offsets. Tracemute’s strip is therefore file-size-preserving: each metadata chunk’s fourCC is rewritten from LIST (or INAM, IART, …) to JUNK — a valid RIFF padding chunk decoders ignore — and the body is zeroed. Total bytes unchanged, every downstream offset still valid.

The recursive walker also catches metadata buried inside non-INFO LISTs (camcorders often nest IDIT inside hdrl).

What Tracemute does

The handler is a native RIFF walker with a same-size JUNK rewrite:

  1. Validate the RIFF/AVI signature.
  2. Walk every chunk in the outer RIFF body. Descend into LIST chunks so nested metadata is caught.
  3. For LIST INFO containers and known standalone metadata chunks (INAM, IART, ICMT, ICOP, ICRD, IENG, IGNR, IKEY, ISBJ, ISFT, ISRC, ITCH, ILNG, ISTR, ISTD, IDIT, ISMP, …) — parse the contents for the dossier, then rewrite the chunk’s fourCC to JUNK and zero its body.
  4. The LIST hdrl and LIST movi chunks are kept verbatim. idx1 and OpenDML ix## indices stay byte-identical because nothing has moved.

What survives

Stream descriptors (LIST hdrl), every audio + video sample chunk (LIST movi), the legacy idx1 index, OpenDML super-indices, and any non-metadata chunks (GoPro telemetry tracks, vendor-specific extensions). The output is the same size as the input. No transcoding.

Where this format shows up

Real situations that hand you a AVI file.