Checksums for video offload: xxHash vs MD5, and what an MHL file is

MultiSyncer Studio article · 4 min read

A checksum shows that a copy of a file matches the original. MultiSyncer Studio computes it for every file on the card and in every copy and compares them. For video xxHash is the most convenient: in our test it is more than 10 times faster than MD5, so the check barely slows the copy down.

What a checksum is

A checksum (hash) is a short string of letters and digits that the app computes from the entire contents of a file. If even one bit of the file changes, the checksum comes out different. So the checksum is computed twice: from the file on the card and from its copy on the drive. If the checksums match, the copy is the same as the original.

Simply dragging files in Finder or Explorer computes no checksum: a file can be copied with an error and still look fine. More in the article “Memory card offload on set: two copies and checksum verification”.

Which checksum to choose

ChecksumWhat it isWhen to choose it
xxh128A modern fast checksum of the xxHash family, 128-bit: an accidental match is even less likelyThe default in new MultiSyncer installs; fits almost always
xxh3Just as fast, shorter checksum (64-bit)If that is what your team uses
xxHash64The usual DIT standardWhen that is what your team or client uses
MD5An old, widespread checksum, noticeably slower to computeIf the client requires it
SHA-1An old, widespread checksum, slower than xxHashIf the client requires it

The app puts it this way: “xxHash64 is the usual DIT standard. xxh3 and xxh128 are newer and faster. MD5 and SHA-1 if the client requires them.”

How fast the checksums are

We measured the speed with the same code MultiSyncer uses: a 1 GB file in memory, three runs.

ChecksumSpeed, MB/s
xxh128about 9,500
xxh3about 9,400
xxHash64about 8,600
SHA-1about 2,500
MD5about 800

Measured by us on a MacBook Pro with Apple M4 Pro and 24 GB of memory. Another computer will give other numbers.

What this means on set. xxHash computes more than 10 times faster than MD5 and is usually faster than the card can be read and the drive written. So with xxHash the copy speed is limited by the card and the drives, not by the checksum. MD5 (about 800 MB/s) can slow down fast cards such as CFexpress. If that happens, the app tells you that “the checksum holds it back” and that xxh3 and xxHash64 are faster than MD5 and SHA-1.

What an MHL file is

MHL is a list of the files in a copy with their checksums. It sits next to the copy, and anyone can use it to check the copy later: on another computer, in the edit room, a month later.

MultiSyncer writes two lists next to every verified copy:

  • ASC MHL v2: the history in the ascmhl folder inside the copy, with a chain of checks;
  • MHL 1.1: a file in the older format next to it.

Check the copies later. In the day panel each card has a “Check copies” button: the app reads all copies of the card again and checks them against the checksums (MHL).

How it works in MultiSyncer Studio

1

Choose the checksum in the project setup

Section “Copying and folders”, line “Checksum”: xxHash64, xxh3, xxh128, MD5 or SHA-1. New installs default to xxh128.

2

Copy the cards

Every file is copied to the selected drives, from one to four. Then comes the “Check” stage: every copy is read back and checked against the card by checksum.

3

If the checksum does not match

The app reads and copies again; no half-read files are left behind. If the copy still does not match, the app reports “Checksum mismatch”.

4

Format only what is verified

“Safe to format” appears only with two verified copies on different drives. A cloud folder does not count as a copy.

More: card offload in MultiSyncer Studio →

FAQ

xxHash64 or xxh128: which should I choose?

Both are fast and reliable for checking copies. xxHash64 is familiar in DIT work, xxh128 is newer and is the default in new MultiSyncer installs. If the client does not require a specific checksum, either will do.

What is an MHL file?

A list of the files in a copy with their checksums. It lets you check the copy later. MultiSyncer writes ASC MHL v2 (the ascmhl folder) and MHL 1.1 next to every verified copy.

Does verification slow down the copy?

With xxHash usually not: in our test it computes faster than the card is read. MD5 is slower and can hold back fast cards; then the app suggests xxh3 or xxHash64.

Can I check the copies later?

Yes. In the day panel each card has a “Check copies” button: the app reads all the copies again and checks them against the checksums (MHL).

Try it on your next shoot

For 14 days every feature works with no key and no sign-up. macOS and Windows.

Download free