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
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 FILEQuoteHow to get the proper groupname and tagname?
Do this on a file that contains the information:
exiftool -G7 -a FILEOr 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
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
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.
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!
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