News:

2023-03-15 Major improvements to the new Geolocation feature

Main Menu

JUMBF

Started by jfarkas, March 21, 2021, 09:41:06 AM

Previous topic - Next topic

jfarkas

Was wondering if there is a way to read/write box details of JPEG universal metadata box format (JUMBF) - ISO 19566-5 (https://www.iso.org/standard/73604.html?)

Please see the attached image for an example. The content of the box(es) can be inspected/displayed at https://verify.contentauthenticity.org/inspect

Best
Janos

Phil Harvey

Hi Janos,

Thanks for this suggestion.

I'm actually working on read support right now, but write support isn't something I foresee being able to add easily.

This is yet another format whose specification is held hostage by ISO, and I am unable (unwilling) to pay the ransom fee... which means that I will have to add support based on reverse engineering and less reliable information from other sources.

- 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 ($).

jfarkas

Hi Phil,

Thank you for your prompt reply.
If I would provide the funds needed for the ISO fees would you consider creating the writing support? We (clink.media) would be glad to field test it. 
We are a member of CAI and C2PA(c2pa.org) and created an integration for your wonderful ExifTool with WordPress.

- Janos

Phil Harvey

Actually, it is the complex structure of JUMBF that is the biggest problem for implementing write support.  The JUMBF metadata is represented in nested structures, and the tag descriptions are stored separately from the values.  This makes it very difficult to provide a reasonable user interface since it doesn't fit into the simple -TAG=VALUE command-line interface that ExifTool uses.  I will have to think about how this could be done.  If you have any ideas (ie. concrete examples of command lines that you could use to write the information you want), let me know.

- 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 ($).

leonardr

Phil - first a reminder that access to ISO standards *can be* free, you simply need to participate in their development.  I would be happy to introduce you to any committees where you would like to contribute.

Concerning JUMBF, since it is just "embeddable" ISO BMFF, what model you use today for writing other BMFF-based formats (eg. AVIF, MP4, etc.) would be the most reasonable to use here.

jfarkas

Hi Phil,

I will think about the write user interface/command line and will get back to you with suggestions in about a week timeframe.
Thank you again for considering it.

- Janos

Phil Harvey

Quote from: leonardr on March 22, 2021, 08:45:19 AM
Phil - first a reminder that access to ISO standards *can be* free, you simply need to participate in their development.  I would be happy to introduce you to any committees where you would like to contribute.

Interesting idea.  Email me and we'll discuss this further (philharvey66 at gmail.com).

QuoteConcerning JUMBF, since it is just "embeddable" ISO BMFF, what model you use today for writing other BMFF-based formats (eg. AVIF, MP4, etc.) would be the most reasonable to use here.

Yes, decoding ISO BMFF is the easy part.  But the structure of ISO BMFF can be arbitrarily complicated, and the difficult part is making this compatible with a simple, general, command-line interface.

- 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 ($).

jfarkas

Hi Phil,

Just letting you know that we need somewhat more time before we can give meaningful inputs on the UI and CLI.  Will get back to you soon.

jfarkas

Hi Phil,

Would the CLI structure you have implemented with serialized structured data https://exiftool.org/struct.html#Serialize work for JUMBF?

Could be an option for user-defined JUMBF structure tags (via the ExifTool config file), similar to how you have done for XMP https://exiftool.org/config.html#xmp-xxx?

- Janos

Phil Harvey

Hi Janos,

This is currently how ExifTool extracts structured JUMBF metadata.  The real problem is the deep nesting of what ExifTool is organizing as sub-documents.   Creating a single tag requires creating all of the containers for it too.  This is do-able, but would be a lot of work, and I would need the specification for all the structures that need to be written.

> exiftool -G3:1 -struct HEALTHCORONAVIRUSUSAOREGON_SALEM_08-cai.jpg
[ExifTool]      ExifTool Version Number         : 12.25
[System]        File Name                       : HEALTHCORONAVIRUSUSAOREGON_SALEM_08-cai.jpg
[System]        Directory                       : .
[System]        File Size                       : 891 KiB
[System]        File Modification Date/Time     : 2021:03:18 09:13:30-04:00
[System]        File Access Date/Time           : 2021:04:09 00:00:00-04:00
[System]        File Inode Change Date/Time     : 2021:03:18 09:13:30-04:00
[System]        File Permissions                : -rwxrwxrwx
[File]          File Type                       : JPEG
[File]          File Type Extension             : jpg
[File]          MIME Type                       : image/jpeg
[File]          Image Width                     : 2500
[File]          Image Height                    : 1688
[File]          Encoding Process                : Baseline DCT, Huffman coding
[File]          Bits Per Sample                 : 8
[File]          Color Components                : 3
[File]          Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
[Doc1:JUMBF]    JUMD Type                       : cacb-0011-0010-800000aa00389b71
[Doc1:JUMBF]    JUMD Flags                      : Requestable, Label
[Doc1:JUMBF]    JUMD Label                      : cai
[Doc1-1:JUMBF]  JUMD Type                       : cast-0011-0010-800000aa00389b71
[Doc1-1:JUMBF]  JUMD Flags                      : Requestable, Label
[Doc1-1:JUMBF]  JUMD Label                      : cb.reuters_1
[Doc1-1-1:JUMBF] JUMD Type                      : caas-0011-0010-800000aa00389b71
[Doc1-1-1:JUMBF] JUMD Flags                     : Requestable, Label
[Doc1-1-1:JUMBF] JUMD Label                     : cai.assertions
[Doc1-1-1-1:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-1:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-1:JUMBF] JUMD Label                   : adobe.asset.info
[Doc1-1-1-1:JSON] Title                         : HEALTHCORONAVIRUSUSAOREGON_SALEM_08.jpg
[Doc1-1-1-2:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-2:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-2:JUMBF] JUMD Label                   : cai.location.broad
[Doc1-1-1-2:JSON] Location                      : Salem, Oregon
[Doc1-1-1-3:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-3:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-3:JUMBF] JUMD Label                   : cai.rights
[Doc1-1-1-3:JSON] Copyright                     : Alisha Jucevic
[Doc1-1-1-4:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-4:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-4:JUMBF] JUMD Label                   : starling.device
[Doc1-1-1-4:JSON] Android Android Id Hash       : 8b46aab82c3867c7bda32682b1534178d7fce95dce749aa20ccc7d83708ddb7a
[Doc1-1-1-4:JSON] Android Build Id              : PQ2A.190205.003 release-keys
[Doc1-1-1-4:JSON] Android Build Tags            : release-keys
[Doc1-1-1-4:JSON] Android Build Time            : 1583266055000
[Doc1-1-1-4:JSON] Android Build Timestamp       : 2020-04-12T04:33:00Z
[Doc1-1-1-4:JSON] Android Build Type            : user
[Doc1-1-1-4:JSON] Android Device Board          : sdm845
[Doc1-1-1-4:JSON] Android Device Brand          : htc
[Doc1-1-1-4:JSON] Android Device Name           : htc_exodugl
[Doc1-1-1-4:JSON] Android End Product Name      : EXODUS 1
[Doc1-1-1-4:JSON] Android Fingerprint           : htc/exodugl_00709/htc_exodugl:9/PQ2A.190205.003/1109191.2:user/release-keys
[Doc1-1-1-4:JSON] Android Hardware              : htc_exo
[Doc1-1-1-4:JSON] Android Manufacturer          : HTC
[Doc1-1-1-4:JSON] Android Overall Product Name  : exodugl_00709
[Doc1-1-1-5:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-5:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-5:JUMBF] JUMD Label                   : starling.integrity
[Doc1-1-1-5:JSON] Starling Capture Timestamp    : 2021-01-01T12:00:00Z
[Doc1-1-1-5:JSON] Starling Filecoin CID Explorer: https://filfox.info/en/message/bafy2bzacediy5bizpomod3g5wwkvx6nnb7vhbqpweu4sfrmyc555h3utdl3tg
[Doc1-1-1-5:JSON] Starling Filecon CID          : bafykbzacec66bk67flvmxpm6a3nahghrgtxll5bvym42j3c3ypqgfts6nb4k2
[Doc1-1-1-5:JSON] Starling GUN Network          : gun://mkdata12435/JSON78
[Doc1-1-1-5:JSON] Starling GUN Network Explorer : http://edide.xyz/starlingMeta.html
[Doc1-1-1-5:JSON] Starling Hedera Hx            : topic 0.0.57546
[Doc1-1-1-5:JSON] Starling Hedera Hx Explorer   : https://explorer.kabuto.sh/mainnet/id/0.0.57546
[Doc1-1-1-5:JSON] Starling IPFSCID              : QmZ7vxi2RoXX8cE6JkfZdKmfdNDJTYq5yPrtmuwzjexcGs
[Doc1-1-1-5:JSON] Starling IPFSCID Explorer     : https://ipfs.io/ipfs/QmZ7vxi2RoXX8cE6JkfZdKmfdNDJTYq5yPrtmuwzjexcGs
[Doc1-1-1-5:JSON] Starling Media Hash           : 9d777407d07809c9e16d81ebbe997d581080f05bb91c42f61e9872e3670e31f2
[Doc1-1-1-5:JSON] Starling Media Key            : 9d777407d0_20210101T163941Z
[Doc1-1-1-5:JSON] Starling Public Key           : -----BEGIN PGP PUBLIC KEY BLOCK-----Version: BCPG v@RELEASE_NAME@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YeTD-----END PGP PUBLIC KEY BLOCK-----
[Doc1-1-1-6:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-6:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-6:JUMBF] JUMD Label                   : starling.location.precise
[Doc1-1-1-6:JSON] Starling GPS Accuracy         : 11.792
[Doc1-1-1-6:JSON] Starling GPS Altitude         : -4.617279053
[Doc1-1-1-6:JSON] Starling GPS Baring           : 212.94905
[Doc1-1-1-6:JSON] Starling GPS Bearing Accuracy : 0.0
[Doc1-1-1-6:JSON] Starling GPS Latitude         :
[Doc1-1-1-6:JSON] Starling GPS Longitude        :
[Doc1-1-1-6:JSON] Starling GPS Speed            : 0.20248456
[Doc1-1-1-6:JSON] Starling GPS Speed Accuracy   : 0.20248456
[Doc1-1-1-6:JSON] Starling GPS Time             :
[Doc1-1-1-6:JSON] Starling GPS Time Stamp       :
[Doc1-1-1-6:JSON] Starling GPS Vertical Accuracy: 8.0
[Doc1-1-1-7:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-7:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-7:JUMBF] JUMD Label                   : starling.sensors
[Doc1-1-1-7:JSON] Starling Sensor Accelerometer : SensorData(accuracy=3.0, value=[-2.2584498, 5.544669, 7.7695217])
[Doc1-1-1-7:JSON] Starling Sensor Accelerometer Uncalibrated: SensorData(accuracy=3.0, value=[-1.820267, 5.5468745, 7.781287, 0.0, 0.0, 0.0])
[Doc1-1-1-7:JSON] Starling Sensor Game Rotation Vector: SensorData(accuracy=3.0, value=[0.28894028, 0.089926116, -0.077565834, 0.94995135])
[Doc1-1-1-7:JSON] Starling Sensor Geomagnetic Rotation Vector: SensorData(accuracy=3.0, value=[0.13018766, 0.28469607, 0.67535406, 0.66776913, 0.0])
[Doc1-1-1-7:JSON] Starling Sensor Gravity       : SensorData(accuracy=NO_UPDATE_RECEIVED_DURING_SNAP, value=[-2.1173487, 5.2436786, 8.011802])
[Doc1-1-1-7:JSON] Starling Sensor Gyroscope     : SensorData(accuracy=3.0, value=[0.0090546375, 0.0026631376, 0.011718297])
[Doc1-1-1-7:JSON] Starling Sensor Gyroscope Uncalibrated: SensorData(accuracy=3.0, value=[-0.007457021, 0.004261021, -0.0069242665, 0.0, 0.0, 0.0])
[Doc1-1-1-7:JSON] Starling Sensor Light         : SensorData(accuracy=3.0, value=[477.0, 0.0, 0.0])
[Doc1-1-1-7:JSON] Starling Sensor Linear Acceleration: SensorData(accuracy=NO_UPDATE_RECEIVED_DURING_SNAP, value=[0.19492735, 0.059680037, 0.20064202])
[Doc1-1-1-7:JSON] Starling Sensor Magnetic Field: SensorData(accuracy=NO_UPDATE_RECEIVED_DURING_SNAP, value=[106.72393, -18.183104, -12.878148])
[Doc1-1-1-7:JSON] Starling Sensor Magnetic Field Uncalibrated: SensorData(accuracy=3.0, value=[105.09807, 27.845383, -12.322319, 9.477424E-38, 46.511898, 0.20629947])
[Doc1-1-1-7:JSON] Starling Sensor Rotation Vector: SensorData(accuracy=3.0, value=[0.14844818, 0.26368022, 0.59541535, 0.7442592, 0.0])
[Doc1-1-1-8:JUMBF] JUMD Type                    : 6579d6fb-dba2-446b-b2ac1b82feeb89d1
[Doc1-1-1-8:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-8:JUMBF] JUMD Label                   : cai.acquisition.thumbnail.jpg
[Doc1-1-1-8:Jpeg2000] Cai Acquisition Thumbnail Jpg: (Binary data 12038 bytes, use -b option to extract)
[Doc1-1-1-9:JUMBF] JUMD Type                    : 6579d6fb-dba2-446b-b2ac1b82feeb89d1
[Doc1-1-1-9:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-9:JUMBF] JUMD Label                   : cai.claim.thumbnail.jpg
[Doc1-1-1-9:Jpeg2000] Cai Claim Thumbnail Jpg   : (Binary data 12038 bytes, use -b option to extract)
[Doc1-1-2:JUMBF] JUMD Type                      : cacl-0011-0010-800000aa00389b71
[Doc1-1-2:JUMBF] JUMD Flags                     : Requestable, Label
[Doc1-1-2:JUMBF] JUMD Label                     : cai.claim
[Doc1-1-2:JSON] Assertions                      : [self#jumbf=cai/cb.starling_1/cai.assertions/adobe.asset.info?hl=mEiB/Vg9jFErMFtpD5TaKwzwI2vm6/W7Q6k1N303V63xkIA,self#jumbf=cai/cb.starling_1/cai.assertions/cai.location.broad?hl=mEiBrG+Hb2Sm5H72k/LvmdyIshx6sTXjGGDIaAStnlettXw,self#jumbf=cai/cb.starling_1/cai.assertions/cai.rights?hl=mEiDK1AMGoY0+hkWkdkvKjI+9HF9LkaGXKgX4xmU7PWiOqQ,self#jumbf=cai/cb.starling_1/cai.assertions/starling.device?hl=mEiAg8F4wNvtWAkzZCh8WGIl4PFmGnjXqS9WoEpmlBnoiwA,self#jumbf=cai/cb.starling_1/cai.assertions/starling.integrity?hl=mEiCTqahzUikg+NTv1hqx14DpHJ//FEKBF0h0keK4jcQ5kw,self#jumbf=cai/cb.starling_1/cai.assertions/starling.location.precise?hl=mEiAZBmqjPK9F1NvWIgYOdSptgrRaz60qRZhm7KGShzxkcA,self#jumbf=cai/cb.starling_1/cai.assertions/starling.sensors?hl=mEiBoAlP8Qfw6wvGfHn4bP1vRTZ7aUONvpGyZ/HfBe0cJeA,self#jumbf=cai/cb.starling_1/cai.assertions/cai.acquisition.thumbnail.jpg?hl=mEiDDPhc9CixH8ThoytBN2SZC25DkC8DrI/hJYwogAIE/2A,self#jumbf=cai/cb.starling_1/cai.assertions/cai.claim.thumbnail.jpg?hl=mEiC9XDrrknZpwOG1p1cv/6o9lYVNwH178tqYUaefjeOKJg]
[Doc1-1-2:JSON] Asset hashes                    : [{length=0x0000000000009959,name=JFIF SOI-APP0,start=0x0000000000000000,url=,value=EiAuxjtmax46cC2N3Y9aFmBO9Jfay8LEwJWzBUtZ0sUM8gA=},{length=0x000000000000027d,name=JFIF APP1/XMP,start=0x0000000000009959,url=,value=EiDjZifCgG2iKxcYeChKTOcWlJ9I/UC9/c5XFiJREqJFpwA=},{length=0x00000000000215e6,name=JFIF DQT-EOI,start=0x000000000000a90c,url=,value=EiArx031oA0N5KOEG6n9R/bJJFYJvmGlDoLtuwbRipLTKAA=}]
[Doc1-1-2:JSON] Recorder                        : Starling Store using Numbers Protocol
[Doc1-1-2:JSON] Signature                       : self#jumbf=cai/cb.starling_1/cai.signature
[Doc1-1-3:JUMBF] JUMD Type                      : casg-0011-0010-800000aa00389b71
[Doc1-1-3:JUMBF] JUMD Flags                     : Requestable, Label
[Doc1-1-3:JUMBF] JUMD Label                     : cai.signature
[Doc1-1-3:Jpeg2000] Cai Signature               : signature placeholder:cb.starling_1
[JFIF]          JFIF Version                    : 1.01
[JFIF]          Resolution Unit                 : None
[JFIF]          X Resolution                    : 1
[JFIF]          Y Resolution                    : 1
[XMP-x]         XMP Toolkit                     : XMP Core 4.4.0-Exiv2
[XMP-dcterms]   Provenance                      : self#jumbf=cb.reuters_1
[Composite]     Image Size                      : 2500x1688
[Composite]     Megapixels                      : 4.2
[Composite]     File Extension                  : jpg
[Composite]     File Type Description           : Joint Photographic Experts Group
[Composite]     Physical Image Size             : 2500.0x1688.0 None


- 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 ($).

Phil Harvey

Or there is an option to leave the JSON as a block when extracting.  This is probably the way to go when writing, instead of trying to write the individual JSON elements.  But there is still the problem of the nesting.

> exiftool -G3:1 -api blockextract=2 JUMBF/HEALTHCORONAVIRUSUSAOREGON_SALEM_08-cai.jpg
[ExifTool]      ExifTool Version Number         : 12.25
[System]        File Name                       : HEALTHCORONAVIRUSUSAOREGON_SALEM_08-cai.jpg
[System]        Directory                       : .
[System]        File Size                       : 891 KiB
[System]        File Modification Date/Time     : 2021:03:18 09:13:30-04:00
[System]        File Access Date/Time           : 2021:04:23 00:00:00-04:00
[System]        File Inode Change Date/Time     : 2021:03:18 09:13:30-04:00
[System]        File Permissions                : -rwxrwxrwx
[File]          File Type                       : JPEG
[File]          File Type Extension             : jpg
[File]          MIME Type                       : image/jpeg
[File]          Image Width                     : 2500
[File]          Image Height                    : 1688
[File]          Encoding Process                : Baseline DCT, Huffman coding
[File]          Bits Per Sample                 : 8
[File]          Color Components                : 3
[File]          Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
[Doc1:JUMBF]    JUMD Type                       : cacb-0011-0010-800000aa00389b71
[Doc1:JUMBF]    JUMD Flags                      : Requestable, Label
[Doc1:JUMBF]    JUMD Label                      : cai
[Doc1-1:JUMBF]  JUMD Type                       : cast-0011-0010-800000aa00389b71
[Doc1-1:JUMBF]  JUMD Flags                      : Requestable, Label
[Doc1-1:JUMBF]  JUMD Label                      : cb.reuters_1
[Doc1-1-1:JUMBF] JUMD Type                      : caas-0011-0010-800000aa00389b71
[Doc1-1-1:JUMBF] JUMD Flags                     : Requestable, Label
[Doc1-1-1:JUMBF] JUMD Label                     : cai.assertions
[Doc1-1-1-1:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-1:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-1:JUMBF] JUMD Label                   : adobe.asset.info
[Doc1-1-1-1:Jpeg2000] Adobe Asset Info          : (Binary data 52 bytes, use -b option to extract)
[Doc1-1-1-2:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-2:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-2:JUMBF] JUMD Label                   : cai.location.broad
[Doc1-1-1-2:Jpeg2000] Cai Location Broad        : (Binary data 29 bytes, use -b option to extract)
[Doc1-1-1-3:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-3:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-3:JUMBF] JUMD Label                   : cai.rights
[Doc1-1-1-3:Jpeg2000] Cai Rights                : (Binary data 31 bytes, use -b option to extract)
[Doc1-1-1-4:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-4:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-4:JUMBF] JUMD Label                   : starling.device
[Doc1-1-1-4:Jpeg2000] Starling Device           : (Binary data 645 bytes, use -b option to extract)
[Doc1-1-1-5:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-5:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-5:JUMBF] JUMD Label                   : starling.integrity
[Doc1-1-1-5:Jpeg2000] Starling Integrity        : (Binary data 3880 bytes, use -b option to extract)
[Doc1-1-1-6:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-6:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-6:JUMBF] JUMD Label                   : starling.location.precise
[Doc1-1-1-6:Jpeg2000] Starling Location Precise : (Binary data 362 bytes, use -b option to extract)
[Doc1-1-1-7:JUMBF] JUMD Type                    : json-0011-0010-800000aa00389b71
[Doc1-1-1-7:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-7:JUMBF] JUMD Label                   : starling.sensors
[Doc1-1-1-7:Jpeg2000] Starling Sensors          : (Binary data 1461 bytes, use -b option to extract)
[Doc1-1-1-8:JUMBF] JUMD Type                    : 6579d6fb-dba2-446b-b2ac1b82feeb89d1
[Doc1-1-1-8:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-8:JUMBF] JUMD Label                   : cai.acquisition.thumbnail.jpg
[Doc1-1-1-8:Jpeg2000] Cai Acquisition Thumbnail Jpg: (Binary data 12038 bytes, use -b option to extract)
[Doc1-1-1-9:JUMBF] JUMD Type                    : 6579d6fb-dba2-446b-b2ac1b82feeb89d1
[Doc1-1-1-9:JUMBF] JUMD Flags                   : Requestable, Label
[Doc1-1-1-9:JUMBF] JUMD Label                   : cai.claim.thumbnail.jpg
[Doc1-1-1-9:Jpeg2000] Cai Claim Thumbnail Jpg   : (Binary data 12038 bytes, use -b option to extract)
[Doc1-1-2:JUMBF] JUMD Type                      : cacl-0011-0010-800000aa00389b71
[Doc1-1-2:JUMBF] JUMD Flags                     : Requestable, Label
[Doc1-1-2:JUMBF] JUMD Label                     : cai.claim
[Doc1-1-2:Jpeg2000] Cai Claim                   : (Binary data 1648 bytes, use -b option to extract)
[Doc1-1-3:JUMBF] JUMD Type                      : casg-0011-0010-800000aa00389b71
[Doc1-1-3:JUMBF] JUMD Flags                     : Requestable, Label
[Doc1-1-3:JUMBF] JUMD Label                     : cai.signature
[Doc1-1-3:Jpeg2000] Cai Signature               : signature placeholder:cb.starling_1
[JFIF]          JFIF Version                    : 1.01
[JFIF]          Resolution Unit                 : None
[JFIF]          X Resolution                    : 1
[JFIF]          Y Resolution                    : 1
[XMP]           XMP                             : (Binary data 2398 bytes, use -b option to extract)
[Composite]     Image Size                      : 2500x1688
[Composite]     Megapixels                      : 4.2
[Composite]     File Extension                  : jpg
[Composite]     File Type Description           : Joint Photographic Experts Group
[Composite]     Physical Image Size             : 2500.0x1688.0 None


- 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 ($).

jfarkas

Hi Phil,

Wow, thank you so much.  I would be more than happy to provide you the ISO/IEC 19566-5:2019 reference (properly obtained from https://www.iso.org/standard/73604.html) for your use. Would that be helpful?

Will install 12.25 (currently running on 12.16) and will start testing it.

- Janos

Phil Harvey

Hi Janos,

I think I understand the JUMBF structure, so at this point having the formal specification would only be useful if it describes a set of standard information that may be written.

- 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 ($).

leonardr

>I think I understand the JUMBF structure, so at this point having the formal specification would only be useful if it describes a set of standard information that may be written.

...which it does not.

JUMBF is just a container format - embeddable BMFF, basically.

The details of what is in the JUMBF will be carried by some other standard, whether it is something like JPEG-XT or JPEG 360 or CAI/C2PA.

That said, I am working on a white paper (which will be public) from the JPEG working group to discuss exactly this issue and how we see tools like ExifTool working with JUMBF.   Would welcome your input.

jfarkas

Hi Phil,

We have done initial testings with 12.25 and we were able to process images known to have CAI (JUMBF) boxes :). We are looking forward to the outcome of your communication with Leonard.

- Janos

blue-j

I get

exiftool      warning   Invalid JUMBF size or missing JUMBF chunk

with your test file... on 12.25

jfarkas

Hi Phil,

I reached out to you about few C2PA related issues through an email you specify in the repo.  Was wondering if you have received those (sent on 09/12 and 09/16).

- Janos

Phil Harvey

Hi Janos,

Yes, I got them, but I am still catching up from a backlog after having returned from my vacation earlier this month.

- 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 ($).

jfarkas

Hi Phil,

Thank you for letting me know.  Hope you had a great vacation

- Janos

Phil Harvey

I've just released ExifTool 12.32 with experimental support for the new C2PA specification.

- 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 ($).

blue-j

Still getting "Invalid JUMBF size or missing JUMBF chunk" on the initial test file with 12.33.  Is the file malformed?

- J

Phil Harvey

I don't get this warning.  Here is what I get with ExifTool 12.33 for this file on MacOS (but note that the JUMBF specification has changed significantly since this):

> exiftool ~/Desktop/CAI_48be2ea735b445a0baef7026a4253480d19c00efa5bd67b4509a74dc7d6c748a.jpg -G1
[ExifTool]      ExifTool Version Number         : 12.33
[ExifTool]      Warning                         : Non-standard header for APP1 XMP segment
[System]        File Name                       : CAI_48be2ea735b445a0baef7026a4253480d19c00efa5bd67b4509a74dc7d6c748a.jpg
[System]        Directory                       : /Users/phil/Desktop
[System]        File Size                       : 3.4 MiB
[System]        File Modification Date/Time     : 2021:10:17 20:20:37-04:00
[System]        File Access Date/Time           : 2021:10:17 20:30:47-04:00
[System]        File Inode Change Date/Time     : 2021:10:17 20:20:37-04:00
[System]        File Permissions                : -rw-r--r--
[File]          File Type                       : JPEG
[File]          File Type Extension             : jpg
[File]          MIME Type                       : image/jpeg
[File]          Exif Byte Order                 : Big-endian (Motorola, MM)
[File]          Image Width                     : 4032
[File]          Image Height                    : 3024
[File]          Encoding Process                : Baseline DCT, Huffman coding
[File]          Bits Per Sample                 : 8
[File]          Color Components                : 3
[File]          Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
[JFIF]          JFIF Version                    : 1.01
[JFIF]          Resolution Unit                 : inches
[JFIF]          X Resolution                    : 300
[JFIF]          Y Resolution                    : 300
[XMP-x]         XMP Toolkit                     : Adobe XMP Core 5.1.0-jc003
[XMP-srl]       Content Hash                    : 48be2ea735b445a0baef7026a4253480d19c00efa5bd67b4509a74dc7d6c748a
[XMP-dcterms]   Provenance                      : self#jumbf=cai/cb.serelay_1/cai.claim
[XMP-tmp0]      Create Date                     : 2021:03:20 17:38:36.926Z
[IFD0]          Make                            : Apple
[IFD0]          Camera Model Name               : iPhone 12 Pro
[IFD0]          Orientation                     : Rotate 90 CW
[IFD0]          X Resolution                    : 72
[IFD0]          Y Resolution                    : 72
[IFD0]          Resolution Unit                 : inches
[IFD0]          Software                        : 14.4
[IFD0]          Modify Date                     : 2021:03:20 12:32:20
[IFD0]          Host Computer                   : iPhone 12 Pro
[IFD0]          Y Cb Cr Positioning             : Centered
[ExifIFD]       Exposure Time                   : 1/2398
[ExifIFD]       F Number                        : 1.6
[ExifIFD]       Exposure Program                : Program AE
[ExifIFD]       ISO                             : 32
[ExifIFD]       Exif Version                    : 0232
[ExifIFD]       Date/Time Original              : 2021:03:20 12:32:20
[ExifIFD]       Create Date                     : 2021:03:20 12:32:20
[ExifIFD]       Offset Time                     : -05:00
[ExifIFD]       Offset Time Original            : -05:00
[ExifIFD]       Offset Time Digitized           : -05:00
[ExifIFD]       Components Configuration        : Y, Cb, Cr, -
[ExifIFD]       Shutter Speed Value             : 1/2398
[ExifIFD]       Aperture Value                  : 1.6
[ExifIFD]       Brightness Value                : 9.305934907
[ExifIFD]       Exposure Compensation           : 0
[ExifIFD]       Metering Mode                   : Spot
[ExifIFD]       Flash                           : Auto, Did not fire
[ExifIFD]       Focal Length                    : 4.2 mm
[ExifIFD]       Subject Area                    : 969 1286 747 753
[ExifIFD]       Sub Sec Time Original           : 825
[ExifIFD]       Sub Sec Time Digitized          : 825
[ExifIFD]       Flashpix Version                : 0100
[ExifIFD]       Color Space                     : Uncalibrated
[ExifIFD]       Exif Image Width                : 4032
[ExifIFD]       Exif Image Height               : 3024
[ExifIFD]       Sensing Method                  : One-chip color area
[ExifIFD]       Scene Type                      : Directly photographed
[ExifIFD]       Exposure Mode                   : Auto
[ExifIFD]       White Balance                   : Auto
[ExifIFD]       Focal Length In 35mm Format     : 26 mm
[ExifIFD]       Scene Capture Type              : Standard
[ExifIFD]       Lens Info                       : 1.539999962-6mm f/1.6-2.4
[ExifIFD]       Lens Make                       : Apple
[ExifIFD]       Lens Model                      : iPhone 12 Pro back triple camera 4.2mm f/1.6
[ExifIFD]       Composite Image                 : General Composite Image
[Apple]         Run Time Flags                  : Valid
[Apple]         Run Time Value                  : 483473196012333
[Apple]         Run Time Scale                  : 1000000000
[Apple]         Run Time Epoch                  : 0
[Apple]         Acceleration Vector             : -0.03775342553 -0.8001805543 -0.5931633711
[Apple]         Media Group UUID                : A69CAE09-4FC3-4E90-B24C-B536B052FB79
[GPS]           GPS Latitude Ref                : North
[GPS]           GPS Latitude                    : 30.213619
[GPS]           GPS Longitude Ref               : West
[GPS]           GPS Longitude                   : 97.877633
[GPS]           GPS Altitude Ref                : Above Sea Level
[GPS]           GPS Altitude                    : 256.3141279 m
[GPS]           GPS Speed Ref                   : km/h
[GPS]           GPS Speed                       : 0
[GPS]           GPS Img Direction Ref           : True North
[GPS]           GPS Img Direction               : 203.8867647
[GPS]           GPS Dest Bearing Ref            : True North
[GPS]           GPS Dest Bearing                : 203.8867647
[GPS]           GPS Date Stamp                  : 2021:03:20
[GPS]           GPS Horizontal Positioning Error: 4.740726836 m
[IFD1]          Compression                     : JPEG (old-style)
[IFD1]          X Resolution                    : 72
[IFD1]          Y Resolution                    : 72
[IFD1]          Resolution Unit                 : inches
[IFD1]          Thumbnail Offset                : 3254
[IFD1]          Thumbnail Length                : 13869
[IFD1]          Thumbnail Image                 : (Binary data 13869 bytes, use -b option to extract)
[MPF0]          MPF Version                     : 0100
[MPF0]          Number Of Images                : 2
[MPImage1]      MP Image Flags                  : (none)
[MPImage1]      MP Image Format                 : JPEG
[MPImage1]      MP Image Type                   : Baseline MP Primary Image
[MPImage1]      MP Image Length                 : 3267290
[MPImage1]      MP Image Start                  : 0
[MPImage1]      Dependent Image 1 Entry Number  : 0
[MPImage1]      Dependent Image 2 Entry Number  : 0
[MPImage2]      MP Image Flags                  : (none)
[MPImage2]      MP Image Format                 : JPEG
[MPImage2]      MP Image Type                   : Undefined
[MPImage2]      MP Image Length                 : 167306
[MPImage2]      MP Image Start                  : 3267910
[MPImage2]      Dependent Image 1 Entry Number  : 0
[MPImage2]      Dependent Image 2 Entry Number  : 0
[MPImage2]      MP Image 2                      : (Binary data 167306 bytes, use -b option to extract)
[ICC-header]    Profile CMM Type                : Apple Computer Inc.
[ICC-header]    Profile Version                 : 4.0.0
[ICC-header]    Profile Class                   : Display Device Profile
[ICC-header]    Color Space Data                : RGB
[ICC-header]    Profile Connection Space        : XYZ
[ICC-header]    Profile Date Time               : 2017:07:07 13:22:32
[ICC-header]    Profile File Signature          : acsp
[ICC-header]    Primary Platform                : Apple Computer Inc.
[ICC-header]    CMM Flags                       : Not Embedded, Independent
[ICC-header]    Device Manufacturer             : Apple Computer Inc.
[ICC-header]    Device Model                    :
[ICC-header]    Device Attributes               : Reflective, Glossy, Positive, Color
[ICC-header]    Rendering Intent                : Perceptual
[ICC-header]    Connection Space Illuminant     : 0.9642 1 0.82491
[ICC-header]    Profile Creator                 : Apple Computer Inc.
[ICC-header]    Profile ID                      : ca1a9582257f104d389913d5d1ea1582
[ICC_Profile]   Profile Description             : Display P3
[ICC_Profile]   Profile Copyright               : Copyright Apple Inc., 2017
[ICC_Profile]   Media White Point               : 0.95045 1 1.08905
[ICC_Profile]   Red Matrix Column               : 0.51512 0.2412 -0.00105
[ICC_Profile]   Green Matrix Column             : 0.29198 0.69225 0.04189
[ICC_Profile]   Blue Matrix Column              : 0.1571 0.06657 0.78407
[ICC_Profile]   Red Tone Reproduction Curve     : (Binary data 32 bytes, use -b option to extract)
[ICC_Profile]   Chromatic Adaptation            : 1.04788 0.02292 -0.0502 0.02959 0.99048 -0.01706 -0.00923 0.01508 0.75168
[ICC_Profile]   Blue Tone Reproduction Curve    : (Binary data 32 bytes, use -b option to extract)
[ICC_Profile]   Green Tone Reproduction Curve   : (Binary data 32 bytes, use -b option to extract)
[JUMBF]         JUMD Type                       : (cacb)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : cai
[JUMBF]         JUMD Type                       : (cast)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : cb.serelay_1
[JUMBF]         JUMD Type                       : (caas)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : cai.assertions
[JUMBF]         JUMD Type                       : (json)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : cai.claim.date
[JUMBF]         JUMD Type                       : (json)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : cai.location.precise
[JUMBF]         JUMD Type                       : (json)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : cai.time
[JUMBF]         JUMD Type                       : (json)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : serelay.hashes
[JUMBF]         JUMD Type                       : (json)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : schema.org.ClaimReview_1
[JUMBF]         JUMD Type                       : (json)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : schema.org.ClaimReview_2
[JUMBF]         JUMD Type                       : (json)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : schema.org.ClaimReview_3
[JUMBF]         JUMD Type                       : (json)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : schema.org.ClaimReview_4
[JUMBF]         JUMD Type                       : 6579d6fb-dba2-446b-b2ac1b82feeb89d1
[JUMBF]         JUMD Label                      : cai.claim.thumbnail.jpeg
[JUMBF]         JUMD Type                       : (cacl)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : cai.claim
[JUMBF]         JUMD Type                       : (casg)-0011-0010-800000aa00389b71
[JUMBF]         JUMD Label                      : cai.signature
[JSON]          Date                            : 2021-03-20T17:38:37.589Z
[JSON]          Exif GPS Latitude               : 30/1,12/1,49032/1000
[JSON]          Exif GPS Longitude              : 97/1,52/1,39480/1000
[JSON]          Xmp Create Date                 : 2021-03-20T17:32:20.000Z
[JSON]          Content Hash                    : 48be2ea735b445a0baef7026a4253480d19c00efa5bd67b4509a74dc7d6c748a
[JSON]          P Hash                          : ce5fc00fd9bd1a7a9af0f07db07f9041bf7c73f8e641e32ba300d003fb2dcb27
[JSON]          Claim Reviewed                  : The location metadata is accurate
[JSON]          Item Reviewed Url               : self#jumbf=cai/cb.serelay_1/cai.assertions/cai.location.precise?hl=MEiDrY2mYP1BjHYKJAOWANMmqi89RsU05xNdChr8cxSGe1g==
[JSON]          Review Rating Type              : Rating
[JSON]          Review Rating Best Rating       : 5
[JSON]          Review Rating Rating Explanation: No proven location manipulation detected, but could not be not fully verified.
[JSON]          Review Rating Rating Value      : 1
[JSON]          Review Rating Worst Rating      : 0
[JSON]          Claim Reviewed                  : The time metadata is accurate
[JSON]          Item Reviewed Url               : self#jumbf=cai/cb.serelay_1/cai.assertions/cai.time?hl=MEiCdoV+oNhNv6zkJmNJY5IFwFoPGFC7AuQPmwiUbS/VISw==
[JSON]          Review Rating Type              : Rating
[JSON]          Review Rating Best Rating       : 5
[JSON]          Review Rating Rating Explanation: Very low confidence, time is possibly incorrect by more than a day.
[JSON]          Review Rating Rating Value      : 1
[JSON]          Review Rating Worst Rating      : 0
[JSON]          Claim Reviewed                  : Content is authentic and was not edited before CAI
[JSON]          Item Reviewed Url               : self#jumbf=cai/cb.serelay_1/cai.assertions/serelay.hashes?hl=MEiAUJkjidYCDa/RVKKCQBfthvm2yOv0wUJqf2nGWgTSHxA==
[JSON]          Review Rating Type              : Rating
[JSON]          Review Rating Best Rating       : 5
[JSON]          Review Rating Rating Explanation: No visual manipulation detected to this photo since capture, but Enhanced Capture was not enabled.
[JSON]          Review Rating Rating Value      : 3
[JSON]          Review Rating Worst Rating      : 0
[JSON]          Claim Reviewed                  : Content was captured on a Serelay compliant device
[JSON]          Item Reviewed Url               : self#jumbf=cai/cb.serelay_1/cai.assertions/serelay.hashes?hl=MEiAUJkjidYCDa/RVKKCQBfthvm2yOv0wUJqf2nGWgTSHxA==
[JSON]          Review Rating Type              : Rating
[JSON]          Review Rating Best Rating       : 5
[JSON]          Review Rating Rating Explanation: High confidence.
[JSON]          Review Rating Rating Value      : 4
[JSON]          Review Rating Worst Rating      : 0
[JSON]          Assertions                      : self#jumbf=cai/cb.serelay_1/cai.assertions/cai.claim.date?hl=MEiABsPdPIPPR2StCc5yVJRB9acZNhIpRinfqmpMs84HARg==, self#jumbf=cai/cb.serelay_1/cai.assertions/cai.location.precise?hl=MEiDrY2mYP1BjHYKJAOWANMmqi89RsU05xNdChr8cxSGe1g==, self#jumbf=cai/cb.serelay_1/cai.assertions/cai.time?hl=MEiCdoV+oNhNv6zkJmNJY5IFwFoPGFC7AuQPmwiUbS/VISw==, self#jumbf=cai/cb.serelay_1/cai.assertions/serelay.hashes?hl=MEiAUJkjidYCDa/RVKKCQBfthvm2yOv0wUJqf2nGWgTSHxA==, self#jumbf=cai/cb.serelay_1/cai.assertions/schema.org.ClaimReview_1?hl=MEiDt66sDyIpwGqfEzUQ+XnLHtB6R36iN1LukWoFX3m4DXw==, self#jumbf=cai/cb.serelay_1/cai.assertions/schema.org.ClaimReview_2?hl=MEiD5EbTPeZNy+29OuUiKWcMTZxUsPUYmtRSplhzRu6+A8A==, self#jumbf=cai/cb.serelay_1/cai.assertions/schema.org.ClaimReview_3?hl=MEiDNaoqipZLhRiYRbAxPYZ2RtDwDpGKzLvgzOLvVXSy+/A==, self#jumbf=cai/cb.serelay_1/cai.assertions/schema.org.ClaimReview_4?hl=MEiA9tQY5h/oZcCEqH2feTYRnSuNCbvO24JrDccjhrN2XPw==, self#jumbf=cai/cb.serelay_1/cai.assertions/cai.claim.thumbnail.jpeg?hl=MEiD2LiaftTtd8Fwh+JcmoDmHFEimdKuywYMOf1urGiRZfQ==
[JSON]          Asset Hashes Length             : 0x0000000000004061, 0x0000000000342318
[JSON]          Asset Hashes Name               : JFIF APP1 Exif, JFIF SOS-EOI
[JSON]          Asset Hashes Start              : 0x0000000000000284, 0x00000000000262dc
[JSON]          Asset Hashes Url                : ,
[JSON]          Asset Hashes Value              : MEiD9hmMuXDNigZkUnfMAmNd7ePsAakyLcPLVe2/fZlYUSA==, MEiBpCWM0mWN8dV4mkGG7w9b7LL1UO4RuFaQ9cLIwdcyOcA==
[JSON]          Recorder                        : Serelay React (36da8cce/1.2.1)/API (v2.19.7/2.19.7)
[JSON]          Signature                       : self#jumbf=cai/cb.serelay_1/cai.signature
[JSON]          Xmp hash                        : MEiADAXnwez8Mz3rmVWAVX5WD7wumMU2OsYZMvL9B5+U6FA==
[Jpeg2000]      Cai Claim Thumbnail Jpeg        : (Binary data 131632 bytes, use -b option to extract)
[Jpeg2000]      Cai Signature                   : 0?.g..*?H??....??.X0?.T...1.0...`?H.e.....0...*?H??....??.00?.,0?....?r????g|0...*?H??.....0X1.0...U....GB1.0...U....England1.0...U....Oxford1.0...U....Serelay1.0...U....serelay.com0...210308143230Z..310306143230Z0X1.0...U....GB1.0...U....England1.0...U....Oxford1.0...U....Serelay1.0...U....serelay.com0?."0...*?H??......?..0?...?..?..?..??.[?.??8.<s??c?..?f??<???1?n?.X?ڦ[?]?\??B|o.z?_?H.rVY???Qɥ??&Q??8..``??E.N??.??&5?.uM?<??OI?.?????????Q~???%S?f???.?g"V??Kj?.U?X?k?\4?ŋ{?1.??N.w?܈?C?zb??.Q?[?L$Pwd???"??s8y?Q?.D??\?4???-?N.Q??Xu???.o??|?.+?B+?+??&??~??"~?.3?A??5.?Q??.$???.??.?>~?.'?5?3~?..??*.v.?:?2.??Y1Y?zm?p>^J?j?.?{..X|???ҢAI,.?ށ????????.??"TR??I??Y)?..?V??4????v??.???????%?x????~'0???`'2?r0.AI.p8?g$X????b?,?y??~?@.?+?\.F?SV.ްIB.B??3`?~.?%BrٌM|?AT.??.?.??t???.??..8;<'?O#?{?b=:?.????^..?.??JЋ0??U.?U\8?-u>??`?.?.g....0...*?H??......?..N??.k??k.?\?sV?????7.?R׈?VP.ȋW??~.??z???Ol?.&s?.?w]A?i?o?D?L?P?WMj??I?B??????u6Wi????.:??w?A???.l@,?(.k;?YQ??'??.[?=P?.~??O????.??.7?6?z??#o.??Ʊ?l.?wA?.,??C.?1?|P?т?H???).??b??6b7??]?Lrϭ.OK???н??:.']c?2.x? Þ..b?}c?.???z??a?uV?7?k.g?g??p.??|5..ÝmC?.K[??6.?N?.?ߐ??.??{??`.ajBZuʳ.@t???V???..???u?iY?.?U?v=)t?_?L?t?S..y6..??ft.?E&???*?4T.?....B????*????)?o?6?..qUV???-d?ۇ?۪.I..??..?a|M|.?!???֟???s??)!u??4ᒃG..*"?2?d}9d?0?..l?%?+.1?????Է??q۹g?Z.q??D.?!???e.?.C??.^.j??*.Z??_????++?C?i߱???u?U.?.1?.?0?.?...0e0X1.0...U....GB1.0...U....England1.0...U....Oxford1.0...U....Serelay1.0...U....serelay.com..?r????g|0...`?H.e.....?i0...*?H??....1...*?H??....0/..*?H??....1". /??H?.???Y.G?K?.4?.,?of?KY?-???.0...*?H??....1...210320173837Z0...*?H??......?.?f???c8ݷ?Se.?<ХtZ?Y?$>#L.?A?hy.??Ǿ:?s??&`.UW?.m$? ???..kWX?J1v?[?.?m2?.).?/?1 kّ???;e.????".??zs2I??.r??.?+????p?.??I??-?O.O.?!.?R?ꏉO[?.????.??B﹗??ZXT?.?v?qY?0?h?^..zD.4..??μ??.?b.o_|⁕J??[??.0??.??!?R!O?.*?Os?8??_?0ZE?y??????W?vU??J..a??.?d?{???R?-ڇ.ao?ƃ?.?2`??8.?.Φ?.?ɡf?z???.R?.%???????.S^"W$??????.??E.?y.=j??K"??M?n;?<?%????L.N?._.?.,??g??3ݫ#~???!.C!?:?.=ao??|??.6I.$?I??Z??.?5??8#?D?8?.?..?..?.)???)?X???? ?.?..R?T.b?K???.??.m?c?YK?I?.C???!?b..?Ӯ??@???m?B?$⊔?]V?Y ?°"m-?=q??e!޼??o
[Composite]     Run Time Since Power Up         : 5 days 14:17:53
[Composite]     Aperture                        : 1.6
[Composite]     Image Size                      : 4032x3024
[Composite]     Megapixels                      : 12.2
[Composite]     Scale Factor To 35 mm Equivalent: 6.2
[Composite]     Shutter Speed                   : 1/2398
[Composite]     Create Date                     : 2021:03:20 12:32:20.825-05:00
[Composite]     Date/Time Original              : 2021:03:20 12:32:20.825-05:00
[Composite]     Modify Date                     : 2021:03:20 12:32:20-05:00
[Composite]     GPS Altitude                    : 256.3 m Above Sea Level
[Composite]     GPS Latitude                    : 30.213619 N
[Composite]     GPS Longitude                   : 97.877633 W
[Composite]     Circle Of Confusion             : 0.004 mm
[Composite]     File Extension                  : jpg
[Composite]     File Type Description           : Joint Photographic Experts Group
[Composite]     Physical Image Size             : 56.0x42.0 inches
[Composite]     Field Of View                   : 69.4 deg
[Composite]     Focal Length                    : 4.2 mm (35 mm equivalent: 26.0 mm)
[Composite]     GPS Position                    : 30.213619 N, 97.877633 W
[Composite]     Hyperfocal Distance             : 2.76 m
[Composite]     Light Value                     : 14.2
[Composite]     Lens ID                         : iPhone 12 Pro back triple camera 4.2mm f/1.6


- 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 ($).

jfarkas

12.33 is working also fine for us:

"ExifToolVersion": 12.33,
  "FileName": "Test.jpg",
  "Directory": "/home/....",
  "FileSize": "932 KiB",
  "FileModifyDate": "2021:10:03 13:29:56-04:00",
  "FileAccessDate": "2021:10:19 18:10:23-04:00",
  "FileInodeChangeDate": "2021:10:03 13:29:56-04:00",
  "FilePermissions": "-rw-r--r--",
  "FileType": "JPEG",
  "FileTypeExtension": "jpg",
  "MIMEType": "image/jpeg",
  "JFIFVersion": 1.02