Family-7 taggroup - some comprehension questions

Started by herb, August 05, 2020, 10:38:20 AM

Previous topic - Next topic

herb

Hello Phil,

During the past weeks I read many posts here that lead to introduction of family-7 taggroups.
My impression is that this taggroup(s) had to be introduced in order to properly write "some/many Quicktime tags" in ItemList group.

I tried to follow these posts and have seen many details for Perl programming.
But one point in all the posts was:
QuoteCopy such tags with  -tagfromfile <file> -all:7all:all

After that I had the idea that the new feature can also be used with commandline.
So I have some questions about how to use family-7 groups:
(1)
Ok, we can display all tags of an image with option -g7:x or also -gx:7 and in output we see lines like
---- ID-271:IFD0 ----
Make                            : OLYMPUS IMAGING CORP.
or
---- IFD0:ID-271 ----
Make                            : OLYMPUS IMAGING CORP.

But can we also use the displayed family-7 group to write/modify each EXIF-, IPTC- or XMP-tag.
If yes, how does the commandline look like (from technical point of view)?
How to get the proper groupname and tagname?

(2)
Is it helpful to use family-7 groups on commandline in general or is it only necessary/helpful in special cases e.g. to write quicktime ItemList tags.

(3) Copy such tags: -tagfromfile <file> -all:7all:all
In which cases can this commandline be used; in which cases must it be used?

Thanks for the private lession in advance.
Best regards
herb

Phil Harvey

Hi Herb,

Quote from: herb on August 05, 2020, 10:38:20 AM
But can we also use the displayed family-7 group to write/modify each EXIF-, IPTC- or XMP-tag.

Yes.  The documentation mentions when a family 7 group name may be used.

QuoteIf yes, how does the commandline look like (from technical point of view)?

The same as with any other group:

exiftool -GROUP:TAG=VALUE FILE

QuoteHow to get the proper groupname and tagname?

Do this on a file that contains the information:

exiftool -G7 -a FILE

Or  if you must, you can add "ID-" to the tag ID's in the tag name documentation.  The only trick here is that invalid characters must be converted to hex digits.

QuoteIs it helpful to use family-7 groups on commandline in general or is it only necessary/helpful in special cases e.g. to write quicktime ItemList tags.

Currently it isn't very useful other than for QuickTime tags because the family 1 group names will disambiguate most other same-named tags.

Quote(3) Copy such tags: -tagfromfile <file> -all:7all:all
In which cases can this commandline be used; in which cases must it be used?

The only case where this may be useful is when copying tags from one MOV/MP4 video to another video of the same type.

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

dae65

Quote from: herb on August 05, 2020, 10:38:20 AM
How to get the proper groupname and tagname?
Quote from: Phil Harvey on August 05, 2020, 05:06:05 PM
Do this on a file that contains the information:
exiftool -G7 -a FILE

Right. But sometimes this may be not enough. The point of a family 7 group name is to disambiguate a tag name by means of a tag ID. However, when the tag ID is itself ambiguous across groups, users will also need to find out another group in addition to the family 7 group name, and use the group:group7:tag syntax:


$ exiftool -G7 -a -Title FILE
[ID-a9nam]      Title                           : Title1
[ID-a9nam]      Title                           : Title2
$ exiftool -G1 -a -Title FILE
[ItemList]      Title                           : Title1
[UserData]      Title                           : Title2
$ exiftool -UserData:ID-a9nam:Title FILE
Title                           : Title2

Phil Harvey

#3
Thanks for pointing this out.  Yes.  In MP4/MOV videos, you need to use family 1 and 7 together to target a specific tag.  (But for most purposes, using the family 1 group should be sufficient, and ExifTool will write the tag with the ID that occurs most commonly in my sample files.)

You can use -G1:7 when extracting to see both groups in the same command (as Herb mentioned)

- Phil

Edit: Did I mention that video metadata is a real free-for-all?  This is the main reason it took me so long to implement the ability to write this.
...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 ($).

dae65

#4
Quote from: herb on August 05, 2020, 10:38:20 AM
(2) Is it helpful to use family-7 groups on commandline in general or is it only necessary/helpful in special cases e.g. to write quicktime ItemList tags.
Quote from: Phil Harvey on August 05, 2020, 05:06:05 PM
Currently it isn't very useful other than for QuickTime tags because the family 1 group names will disambiguate most other same-named tags.

Indeed, family 1 group names, together with the built-in tag priority rules, will always pick the right tag for most users. But for users willing to be a little bit more in control, here are a list of ambiguous writable tag names (in addition to the QuickTime ones) for which family 7 group names may be useful at some point.

First, the following few tags are doubly ambiguous. They're ambiguous both across and within groups. Fortunately, there aren't many. Users should either rely on ExifTool's nearly two decade-long experience as to where a tag should go (recommended), or else appeal to the group:group7:tag syntax. The three columns are needed; no pairs of (group, name), (group, id), or (name, id) will do.


Name                   ID     Groups 0:1
iso                    0x14   Casio:Type2 | Pentax:Main
lensspecfeatures       0x116  Sony:Tag9050a | Sony:Tag9050b
colortemperature       0x4e   Canon:CameraInfo1D | MinoltaRaw:RIF
dynamicrangeoptimizer  0x50   Sony:Tag2010f | Sony:Tag2010g | Sony:Tag2010h
dynamicrangeoptimizer  0x228  Sony:Tag2010g | Sony:Tag2010h
pictureprofile         0x246  Sony:Tag2010g | Sony:Tag2010h
pictureprofile         0x247  Sony:Tag2010g | Sony:Tag2010h
releasemode2           0x4    Sony:Tag2010f | Sony:Tag2010g | Sony:Tag2010h | Sony:Tag2010i
releasemode2           0x8    Sony:Tag2010b | Sony:Tag2010c | Sony:Tag2010d | Sony:Tag2010e
releasemode2           0x210  Sony:Tag2010g | Sony:Tag2010h
album                  albm   QuickTime:ItemList | QuickTime:UserData
album                  ©alb   QuickTime:ItemList | QuickTime:UserData
title                  ©nam   QuickTime:ItemList | QuickTime:UserData
title                  titl   QuickTime:ItemList | QuickTime:UserData
genre                  gnre   QuickTime:ItemList | QuickTime:UserData
genre                  ©gen   QuickTime:ItemList | QuickTime:UserData
composer               ©com   QuickTime:ItemList | QuickTime:UserData
composer               ©wrt   QuickTime:ItemList | QuickTime:UserData
copyright              cprt   QuickTime:ItemList | QuickTime:UserData
copyright              ©cpy   QuickTime:ItemList | QuickTime:UserData


And the following tags are ambiguous within groups; that is, a single tag name was assigned to multiple tag IDs in the same group. Here, as with the more problematic tags above, users should either rely on ExifTool to pick a tag ID for them (recommended), or else disambiguate tags by means of family 7 group names.

There are countless such tags, but the difference is that here a family 7 group name, together with a tag name, may be enough.  Beware some tags below have already appeared above (e.g., LensSpecFeatures as 0x116 in both Sony:Tag9050a and Sony:Tag9050b groups); in such cases, the family 7 group name may be not enough to disambiguate them, and a family 1 group name may be needed.


Name                           Group0       Group1                ID
aelock                         Sony         CameraSettings3       x86, x286
afareaheight                   Nikon        AFInfo2               x1a, x34, x50
afareamode                     Sony         AFInfo                xa, x3a
afareawidth                    Nikon        AFInfo2               x18, x32, x4e
afareaxposition                Nikon        AFInfo2               x14, x2e, x4a
afareayposition                Nikon        AFInfo2               x16, x30, x4c
afbuttonpressed                Sony         CameraSettings3       x83, x283
afimageheight                  Nikon        AFInfo2               x12, x2c, x48
afimagewidth                   Nikon        AFInfo2               x10, x2a, x46
afmicroadj                     Sony         AFInfo                x50, x17d
afpoint                        Sony         AFInfo                x7, x37
afpoint                        Sony         CameraInfo3           x18, x20
afpointatshutterrelease        Sony         AFInfo                x9, x39
afpointinfocus                 Sony         AFInfo                x8, x38
afpointselected                Sony         CameraInfo3           x14, x1c
afpointsinfocus                Pentax       Main                  xf, x3c
afpointsused                   Nikon        AFInfo2               x8, xa
afpointsused                   Sony         AFInfo                x10, x16e
afstatusactivesensor           Sony         AFInfo                x4, x3b
afstatusactivesensor           Sony         CameraInfo3           x1b, x21
album                          QuickTime    ItemList              albm, ©alb
album                          QuickTime    UserData              albm, ©alb
aps-csizecapture               Sony         Tag9050b              x114, x1eb, x1ee, x21a, x21c
author                         QuickTime    ItemList              auth, ©aut
babyage                        Panasonic    Main                  x33, x8010
blacklevel                     Olympus      Main                  x401, x1012
brightnessvalue                Minolta      WBInfoA100            x691, x49c3
calibration                    Sigma        Main                  x24, x30
cameraorientation              Sony         ExtraInfo3            x16, x18
cameratemperature              Canon        CameraInfoPowerShot   x87, x91
cameratemperature              Canon        CameraInfoPowerShot2  x99, x9f, xa4, xa8, x105
cameratemperature              Canon        CameraInfoUnknown32   -3, x47, x53, x5b, x5c, x64
chromaticaberrationcorr        Canon        VignettingCorr        x4, x5
chromaticaberrationcorrparams  Sony         Tag9405b              x37c, x384, x39c, x3b0, x3b8
colorcompensationfilter        Minolta      CameraSettingsA100    x3a, x5f
colorfilter                    MinoltaRaw   RIF                   x38, x4d, x4f
colortemperature               Canon        CameraInfo1D          x48, x4e
colortemperature               Minolta      CameraSettings5D      x49, x6e
colortemperature               Minolta      CameraSettingsA100    x39, x5e
colortemperature               MinoltaRaw   RIF                   x3c, x4c, x4e
composer                       QuickTime    ItemList              ©com, ©wrt
composer                       QuickTime    UserData              ©com, ©wrt
contentcreatedate              QuickTime    UserData              @day, ©day
contrast                       Casio        Type2                 x20, x3012
contrast                       Exif         Main                  xa408, xfe54
contrast                       FujiFilm     Main                  x1004, x1006
contrastdetectafinfocus        Nikon        AFInfo2               x1c, x52
copyright                      QuickTime    ItemList              cprt, ©cpy
copyright                      QuickTime    UserData              cprt, ©cpy
description                    QuickTime    ItemList              desc, dscp, ©des
directoryindex                 Canon        CameraInfo650D        x27c, x280
dynamicrangeoptimizer          Sony         Main                  xb025, xb04f
dynamicrangeoptimizer          Sony         Tag2010b              x324, x1144
dynamicrangeoptimizer          Sony         Tag2010c              x300, x1120
dynamicrangeoptimizer          Sony         Tag2010d              x37c, x119c
dynamicrangeoptimizer          Sony         Tag2010e              x328, x1178
dynamicrangeoptimizer          Sony         Tag2010f              x50, x1030
dynamicrangeoptimizer          Sony         Tag2010g              x50, x228
dynamicrangeoptimizer          Sony         Tag2010h              x50, x228
dynamicrangeoptimizer          Sony         Tag2010i              x4e, x21b
dynamicrangeoptimizermode      Sony         FocusInfo             x15, x77
exposurecompensation           Sigma        Main                  xc, x35, x4d
exposurecompensation2          Sony         MoreSettings          x24, x26, x2a
exposureprogram                Sony         AFInfo                x43, x17e
exposuretime                   Sigma        Main                  x32, x4a
exposuretime                   Sony         MoreSettings          x21, x23, x27
exposuretime2                  Sigma        Main                  x33, x4b
ileformat                      Sigma        Main                  x22, x26
fileindex                      Canon        CameraInfo650D        x270, x274
firmware                       Sigma        Main                  x17, x3b, x8c
firmwareversion                Kodak        IFD                   x415, xce5
firmwareversion                QuickTime    UserData              CNFV, FIRM
flashaction                    Sony         MoreSettings          x2a, x2c, x30
flashactionexternal            Sony         MoreSettings          x78, x7c
flashexposurecomp              Sigma        Main                  x3a, x56
flashexposurecompset2          Sony         MoreSettings          x26, x2c
flashintensity                 Casio        Main                  x5, x19
flashstatus                    Sony         MoreSettings          x82, x86
flashstatusbuilt-in            Sony         CameraSettings3       x87, x287
flashstatusexternal            Sony         CameraSettings3       x88, x288
fnumber                        Sigma        Main                  x31, x49
fnumber                        Sony         MoreSettings          x20, x22, x26
focallength                    Nikon        LensData0800          xc, x3c
focallength2                   Sony         MoreSettings          x23, x25, x29
focusdistance                  Nikon        LensData0800          xb, x4f
focusmode                      Casio        Type2                 xd, x3003
focusmode                      Sony         AFInfo                x5, xb
focusmode                      Sony         CameraInfo3           x15, x1d
focusmode                      Sony         Main                  x201b, xb042, xb04e
focusmode2                     Sony         MoreSettings          x2c, x2e, x32
focusposition2                 Sony         MoreSettings          x29, x2b, x2f
focustrackinglockon            NikonCustom  SettingsD3            x1, x4
foldernumber                   Sony         CameraSettings3       x114, x316, x402
framecount                     Canon        MovieInfo             x2, x4
framerate                      Canon        MovieInfo             x1, x6
freememorycardimages           Minolta      CameraSettings5D      x37, x54
freememorycardimages           Minolta      CameraSettings7D      x2d, x4a
funcbutton                     NikonCustom  SettingsD3            xe, xf
funcbuttonplusdials            NikonCustom  SettingsD3            xe, xf
genre                          QuickTime    ItemList              gnre, ©gen
genre                          QuickTime    UserData              gnre, ©gen
gpscoordinates                 QuickTime    UserData              @xyz, ©xyz
grouping                       QuickTime    ItemList              grup, ©grp
imagenumber                    Sony         CameraSettings3       x114, x314, x400
imagestabilization             Minolta      Main                  x18, x107, x113
internalserialnumber           Sony         Tag9050a              x7c, xf0
iso                            Casio        Type2                 x14, x3014
iso                            Kodak        SubIFD0               xfa2e, xfa46
iso                            Kodak        SubIFD1               x27, x28
iso                            Pentax       Main                  x14, x8b
iso                            Sony         MoreSettings          x1f, x21, x25
jpgfromrawlength               Exif         Main                  x117, x202
jpgfromrawstart                Exif         Main                  x111, x201
kodakimageheight               Kodak        SubIFD0               xfa1e, xfa52
kodakimagewidth                Kodak        SubIFD0               xfa1d, xfa51
lensaperturerange              Sigma        Main                  x30, x48
lensfocalrange                 Sigma        Main                  xa, x2a
lensspecfeatures               Sony         Tag9050a              x115, x116
lensspecfeatures               Sony         Tag9050b              x116, x1ed, x1f0, x21c, x21e
lenstype                       Canon        CameraInfo5D          xc, x97
lenszoomposition               Sony         Tag9405b              x342, x34e, x35a
levelmeter                     QuickTime    UserData              Lvlm, lvlm
linearityuppermargin           Canon        ColorData4            x2ba, x2d1, x2d5
linearityuppermargin           Canon        ColorData7            x1fe, x2de
linearityuppermargin           Canon        ColorData8            x232, x310
liveviewfocusmode              Sony         CameraSettings3       x8b, x28b
liveviewmetering               Sony         CameraSettings3       x84, x284
lvshootingareadisplay          CanonCustom  Functions2            x40b, x40c
make                           QuickTime    UserData              @mak, ©mak
makernoteversion               Sigma        Main                  x1d, x1f
minoltaquality                 Minolta      Main                  x102, x103
model                          QuickTime    UserData              @mod, CNMN, cmnm, ©mdl, ©mod
multiselectorplaybackmode      NikonCustom  SettingsD3            x9, xd
noisereduction                 FujiFilm     Main                  x100b, x100e
normalwhitelevel               Canon        ColorData4            x2b8, x2cf, x2d3
normalwhitelevel               Canon        ColorData7            x1fc, x2dc
normalwhitelevel               Canon        ColorData8            x230, x30e
opticalzoom                    Kodak        SubIFD2               x6006, xf006
orientation2                   Sony         MoreSettings          x28, x2e
ownername                      Exif         Main                  xa430, xfde8
perchannelblacklevel           Canon        ColorData4            x2b4, x2cb, x2cf
perchannelblacklevel           Canon        ColorData5            x108, x14d
perchannelblacklevel           Canon        ColorData7            x1f8, x2d8
perchannelblacklevel           Canon        ColorData8            x22c, x30a
picturecontroldata             Nikon        Main                  x23, xbd
picturemode                    Pentax       Main                  xb, x33
pictureprofile                 Sony         Tag2010a              x115e, x115f
pictureprofile                 Sony         Tag2010b              x1162, x1163
pictureprofile                 Sony         Tag2010c              x113e, x113f
pictureprofile                 Sony         Tag2010d              x11ba, x11bb
pictureprofile                 Sony         Tag2010e              x1196, x1197
pictureprofile                 Sony         Tag2010f              x104e, x104f
pictureprofile                 Sony         Tag2010g              x246, x247
pictureprofile                 Sony         Tag2010h              x246, x247
pictureprofile                 Sony         Tag2010i              x237, x238
picturestyle                   Canon        CameraInfo1D          x4b, x51
pitch                          QuickTime    UserData              ptch, ©fpt
previewbutton                  NikonCustom  SettingsD3            xe, xf
previewbuttonplusdials         NikonCustom  SettingsD3            xe, xf
previewimagelength             Exif         Main                  x117, x202
previewimagelength             Sigma        Main                  x1b, x1d
previewimagesize               Sigma        Main                  x1c, x1e
previewimagestart              Exif         Main                  x111, x201
previewimagestart              Sigma        Main                  x1a, x1c
primaryafpoint                 Nikon        AFInfo2               x7, x38, x44
quality                        Sony         Main                  x102, x202e
rawmeasuredrggb                Canon        ColorData7            x1ad, x26b
releasemode2                   Sony         Tag2010b              x8, x112c
releasemode2                   Sony         Tag2010c              x8, x1108
releasemode2                   Sony         Tag2010d              x8, x1184
releasemode2                   Sony         Tag2010e              x8, x1160
releasemode2                   Sony         Tag2010f              x4, x1018
releasemode2                   Sony         Tag2010g              x4, x210
releasemode2                   Sony         Tag2010h              x4, x210
releasemode2                   Sony         Tag2010i              x4, x208
releasemode2                   Sony         Tag9050a              x3f, x67
releasemode2                   Sony         Tag9050b              x4b, x6b, x6d, x73
resolutionmode                 Sigma        Main                  x4, x87
roll                           QuickTime    UserData              roll, ©frl
rotation                       Minolta      CameraSettings5D      x50, x65
saturation                     Casio        Type2                 x1f, x3013
saturation                     Exif         Main                  xa409, xfe55
scenemodeused                  Kodak        SubIFD2               x6002, xf002
sensitivitysteps               Pentax       CameraSettings        xe, x11
sensortemperature              Sigma        Main                  x39, x55
sequencelength                 Sony         Tag9400c              x16, x1e
sequencenumber                 Sony         CameraSettings3       x10c, x30c
serialnumber                   Exif         Main                  xa431, xfde9
serialnumber                   Nikon        Main                  x1d, xa0
serialnumber                   Olympus      Main                  x404, x101a
serialnumber                   QuickTime    UserData              SNum, slno
sharpness                      Canon        CameraInfo1D          x42, x48
sharpness                      Casio        Type2                 x21, x3011
sharpness                      Exif         Main                  xa40a, xfe56
sharpness                      Ricoh        Main                  x1003, x1014
sharpnessfrequency             Canon        CameraInfo1D          x41, x47
shuttercount                   Nikon        ShotInfo              x6a, x157, x24d
shuttercount                   Nikon        ShotInfoD3b           x27d, x27f
shuttercount                   Sony         MoreInfo0201          x125, x14a
shuttercount2                  Sony         Tag9050b              x50, x52, x58
shuttercount3                  Sony         Tag9050a              x1a0, x1aa, x1bd
shuttercount3                  Sony         Tag9050b              x19f, x1cb, x1cd
softwareversion                QuickTime    UserData              @swr, ©swr
sonyiso                        Sony         Tag2010e              x1254, x1258, x1280
specularwhitelevel             Canon        ColorData4            x2b9, x2d0, x2d4
specularwhitelevel             Canon        ColorData7            x1fd, x2dd
specularwhitelevel             Canon        ColorData8            x231, x30f
textstamp                      Panasonic    Main                  x3b, x3e, x8008, x8009
title                          QuickTime    ItemList              titl, ©nam
title                          QuickTime    UserData              titl, ©nam
transform                      Panasonic    Main                  x59, x8012
vfdisplayillumination          CanonCustom  Functions2            x510, x51d
vibrationreduction             Nikon        ShotInfo              x75, x82, x1ae
viewingmode2                   Sony         CameraSettings3       x85, x285
vignettingcorrparams           Sony         Tag9405b              x34a, x350, x35c, x368
wb_bluelevelsfluorescent       Minolta      WBInfoA100            x15a, x40a
wb_rblevelsdaylight            Minolta      WBInfoA100            x3ec, x528
wb_rblevelsflash               Minolta      WBInfoA100            x304, x3f4
wb_redlevelsfluorescent        Minolta      WBInfoA100            x14c, x3fc
wb_rgblevels                   Minolta      WBInfoA100            x96, x546
whitebalance                   Canon        CameraInfo1D          x44, x4a
whitebalance                   Casio        Type2                 x19, x2012
whitebalance                   Exif         Main                  xa403, xfe4e
whitebalance                   Sigma        Main                  x7, x3c, x58, x88
whitebalance                   Sony         Main                  x115, xb054
yaw                            QuickTime    UserData              _yaw, ©fyw
zonematching                   MinoltaRaw   RIF                   x3a, x4a


Those are writable tags. I wonder how many ambiguous non-writable ones there are.

Quote from: Phil Harvey on August 06, 2020, 07:28:54 AM
Edit: Did I mention that video metadata is a real free-for-all?  This is the main reason it took me so long to implement the ability to write this.

;D Many thanks for having done that!

herb

Hello Phil, hello dae65

thank you very much for the detailed descriptions.
At moment I will not go deeper into "family-7" issues, because I work only with images and not with videos.

Thanks again and
best regards
herb