Terminator found in CanonCNTH

Started by jaykam, July 07, 2019, 01:01:44 AM

Previous topic - Next topic

jaykam

Hey all, I'm experiencing this error when trying to change DateTimeOriginal on MOV files from a canon camera. Any ideas?

jaykam:~ jaykam$  exiftool "-DateTimeOriginal+=0:0:0 1:0:0" /Users/jaykam/Desktop/190706\ ELSA\ Spell\ retreat/FOOTAGE/0T4A0003.MOV
Warning: Terminator found in CanonCNTH with 47690 bytes remaining - /Users/jaykam/Desktop/190706 ELSA Spell retreat/FOOTAGE/0T4A0003.MOV
    0 image files updated
    1 image files unchanged

Hayo Baan

The warning you get seems to indicate some sort of corruption in your file. If this corruption is deemed minor by exiftool you can still have it update the file by adding -m to your command.
Hayo Baan – Photography
Web: www.hayobaan.nl

Phil Harvey

...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

jaykam

I don't think it's a corruption because it's happening on every file from this camera and the files themselves all work fine.

The Camera is a Canon 5D Mark IV.

Phil Harvey

I downloaded a (1 GB!) 5D Mark IV sample and can reproduce this warning (I couldn't find a smaller sample).  The warning is because the Canon CNTH atom is padded with 47 kB of zeros.  This is normal for the CNTH atom.

However, the warning doesn't affect the command.  The reason your command fails is a bit complicated.  The DateTimeOriginal extracted from this file actually comes from the embedded ThumbnailImage.  To change this is a bit tricky, but it can be done like this:

exiftool test.mov -thumbnailimage -b | exiftool "-datetimeoriginal+=0:0:0 1:0:0" - | exiftool test.mov "-canon:thumbnailimage<=-"

This is very similar to the last example in the PIPING EXAMPLES section of the application documentation.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).