Every time footage is copied, from card to drive, drive to NAS, NAS to post, there’s a small chance something goes wrong. A checksum answers one question well: is this copy identical to its source? What it can’t tell you on its own is the rest of the story. How many times has this footage been copied since it left the camera? Is the folder still complete? If a file is damaged, where did it happen?
That’s the gap ASC MHL fills.
What it is
ASC MHL (Media Hash List) is an open specification from the American Society of Cinematographers. It was developed by the Advanced Data Management Subcommittee of the ASC’s Motion Imaging Technology Council, a group with members from studios, software companies, DITs and post facilities. Version 1.0 of the specification was published in March 2022. It’s called ASC MHL to distinguish it from an older format simply called MHL, which it succeeds.
How it works
When a tool that supports ASC MHL copies or verifies media, it writes an ascmhl folder next to the files. Inside are:
- Manifests, one per copy or verification, numbered in order: for example
0001_A002R2EC_2019-01-07_080228Z.mhl. Each is plain, human-readable XML listing every file with its hash and metadata. Every new operation adds a new generation. - A chain file,
ascmhl_chain.xml, which acts as a table of contents for the history and stores a hash of each manifest, so the manifests themselves can be checked too.
The specification supports MD5, SHA-1, C4 and the xxHash family (XXH64, XXH3 and XXH128). Different hash types can be used at different stages, xxHash on set and MD5 in post for example, and the history records the change.
Why it matters
Chain of custody. Because every copy adds a generation, the history shows how many times files have been copied since acquisition and, if damage has occurred, where and when.
Completeness, not just integrity. ASC MHL also stores directory hashes, which reveal whether files have been added to or removed from a folder structure that was previously verified. A folder that’s missing a clip is caught, not just a clip that’s corrupted.
The history travels with the media. The ascmhl folder moves with the footage, so the DIT, the edit, the facility and the archive can all verify against the same record. And because it’s an open spec, it isn’t tied to one vendor. The ASC publishes a free, open-source reference implementation, Pomfort offers a free verification app, MediaVerify, and some RED cameras can write ASC MHL in camera, so the chain can start before the card ever leaves the set.
How Seatbelt uses it
Seatbelt is built around ASC MHL. In Source & Destination verification mode, every file is hashed at the source, copied, and hashed again at the destination, and the result is written as a new generation in the media’s ascmhl history, following the spec’s chain structure. You can browse the history right in the log window. And when you’re updating an existing camera archive, you can tell Seatbelt to only extend media that already has an ASC MHL history, leaving project files alone.
I think everyone should be using ASC MHL to make sure source media stays intact through every copy and move.
Want to dig deeper? The specification and the reference implementation’s documentation are both public.
— Jarl Robert Kristiansen