Main Menu

Recent posts

#21
Great, thanks for the sample.

ExifTool 13.33 will extract the EXIF from this video.

- Phil
#22
The Image::ExifTool API / Re: Problem with tag qualifier...
Last post by Phil Harvey - July 06, 2025, 09:45:08 PM
You should be looking at the return value of WriteInfo to see if everything went OK.  Also to debug this you could do $exifTool->Options(Verbose => 2); to see what it is doing when writing.

- Phil
#23
Bug Reports / Feature Requests / Re: Feature request: support S...
Last post by Jhe - July 06, 2025, 09:33:37 PM
Thank you for the excellent performance of ExifTool.
I have some .MOV files from a Sigma fp and Sigma fp L, which should be in the same format as the Sigma BF, but they are not being parsed correctly. The metadata such as maker, model, and focal length cannot be read.

Could you please take a look at the following MOV video shot with the Sigma fp? ;D
https://drive.google.com/file/d/13KxeE6lkfDHiYpehnIk6BBDGNycw2ubT/view?usp=drive_link
#24
The "exiftool" Application / Re: Concatenating several exif...
Last post by StarGeek - July 06, 2025, 07:19:37 PM
Quote from: Kloomnik on July 06, 2025, 05:18:24 PMI want to concatenate several existing EXIF fields (e.g., Caption, City, State, Country) into that single field.

Minor nitpick. None of those are EXIF tags. They are either XMP tags or IPTC tags. Or both in one case. Use the command in FAQ #3 to see the groups they belong to. That command will also give you the actual names of the tags, which can be different from what other programs list. For example, you say "Caption", but if you actually write to the Caption tag, you are writing to a tag that will only work with the ACDSee image management program. What you probably want to write it is either Caption-Abstract (part of the older IPTC standard) or Description (the newer, modern XMP standard).

This example from the Copying Examples section of the docs shows you how to combine simple text and tag values when copying to another tag.

As the example shows, you simply add a dollar sign to the front of the tag name. If the tag name isn't followed by a space, you add braces as with ShutterSpeed in that example.
#25
The Image::ExifTool API / Re: Problem with tag qualifier...
Last post by Tom Cunningham - July 06, 2025, 06:23:27 PM
Still having some issues. Here's a debug run:

Loading DB routines from perl5db.pl version 1.80
Editor support available.

Enter h or 'h h' for help, or 'man perldebug' for more help.

IO::Socket::SSL::CODE(0xa037ee6d0)(/usr/share/perl5/vendor_perl/5.40/IO/Socket/SSL.pm:276):
276:            INIT { init() }
277:            init();
  DB<1> n
main::(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:41):
41:     my $exifTool = new Image::ExifTool;
  DB<1>
main::(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:42):
42:     my $geo = My::GeoNames->new(username => USERNAME);
  DB<1> b 1125
  DB<2> c
main::TzUpdate(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:1125):
1125:                   my $timestamp_str = $exifTool->GetValue($tag);
  DB<2> p $tag
XMP:DateTimeOriginal
  DB<3> n
main::TzUpdate(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:1126):
1126:                   if ($timestamp_str) {
  DB<3> p $timestamp_str
2025:06:16 21:41:49-07:00
  DB<4> n
main::TzUpdate(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:1129):
1129:                       if ($timestamp_str =~ /(\d{4}):(\d{2}):(\d{2}) (\d{2}):(\d{2}):(\d{2})/) {
  DB<4>
main::TzUpdate(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:1130):
1130:                           my ($year, $month, $day, $hour, $minute, $second) = ($1, $2, $3, $4, $5, $6);
  DB<4>
main::TzUpdate(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:1133):
1133:                           my $original_dt = DateTime->new(
1134:                               year      => $year,
1135:                               month     => $month,
1136:                               day       => $day,
1137:                               hour      => $hour,
1138:                               minute    => $minute,
1139:                               second    => $second,
1140:                               time_zone => 'America/Chicago' # Assume Central time
1141:                           );
  DB<4>
main::TzUpdate(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:1144):
1144:                           $original_dt->set_time_zone($location_timezone);
  DB<4>
main::TzUpdate(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:1147):
1147:                           my $adjusted_timestamp = $original_dt->ymd(':') . ' ' . $original_dt->hms(':') . $original_dt->strftime('%z');
  DB<4>
main::TzUpdate(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:1150):
1150:                           $exifTool->SetNewValue($tag, $adjusted_timestamp);
  DB<4> p $adjusted_timestamp
2025:06:16 19:41:49-0700
  DB<5> p $tag
XMP:DateTimeOriginal
  DB<6> n
main::TzUpdate(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:1154):
1154:               $updates = 1;  # we'll always update
  DB<6>
main::(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:91):
91:             if ($unique) {
  DB<6>
main::(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:94):
94:             if ($updates && !$try) {
  DB<6>
main::(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:95):
95:                 $exifTool->WriteInfo($fn);
  DB<6>
main::(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:96):
96:                 $updates = 0;
  DB<6>
main::(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:98):
98:             if (defined $geoError) {
  DB<6>
main::(/cygdrive/c/Users/Tom/Pictures/Metadata/EXIF/ExifTool/exiftidy.pl:125):
125:        exit;
  DB<6>
Debugged program terminated.  Use q to quit or R to restart,
use o inhibit_exit to avoid stopping after program termination,
S<h q>, S<h R> or S<h o> to get additional info.
  DB<6>

This all looks hunky-dory, but then when I do:

$ exiftool -time:all -G1 -a -s pic.jpg
[System]        FileModifyDate                  : 2025:07:06 22:41:13+01:00
[System]        FileAccessDate                  : 2025:07:06 23:09:20+01:00
[System]        FileCreateDate                  : 2025:07:06 20:09:53+01:00
[IFD0]          ModifyDate                      : 2025:06:16 19:41:49-0700
[ExifIFD]       DateTimeOriginal                : 2025:06:16 19:41:49-0700
[ExifIFD]       CreateDate                      : 2025:06:16 19:41:49-0700
[ExifIFD]       OffsetTime                      : -05:00
[ExifIFD]       OffsetTimeOriginal              : -05:00
[ExifIFD]       OffsetTimeDigitized             : -05:00
[Sony]          SonyDateTime                    : 2025:06:16 21:41:49
[GPS]           GPSTimeStamp                    : 04:41:49
[GPS]           GPSDateStamp                    : 2025:06:17
[IFD1]          ModifyDate                      : 2025:06:16 19:41:49-0700
[XMP-exif]      DateTimeDigitized               : 2025:06:16 19:41:49-07:00
[XMP-exif]      DateTimeOriginal                : 2025:06:16 21:41:49-07:00
[XMP-exif]      GPSDateTime                     : 2025:06:17 04:41:49Z
[XMP-xmp]       ModifyDate                      : 2025:06:16 21:41:49-07:00
[Composite]     GPSDateTime                     : 2025:06:17 04:41:49Z

Huh? I thought I changed the XMP DateTimeOriginal, but it doesn't appear to have changed. I'm stumped.
#26
The "exiftool" Application / Concatenating several exif fie...
Last post by Kloomnik - July 06, 2025, 05:18:24 PM
Hi Exiftool'ers

I intend to import several thousand scanned images into Mac Photos. Practically, its only "free" field of information is Caption, and I want to concatenate several existing EXIF fields (e.g., Caption, City, State, Country) into that single field.

I succeeded in rewriting one EXIF field with another, but not in concatenating several fields.

Because of the number of photos involved, this has to be batched. That is, solving the problem for each image separately in a GUI interface is not feasible.

Hence, can I do it with command-line ExifTool?

Any help with be appreciated.
#27
The Image::ExifTool API / Re: Problem with tag qualifier...
Last post by Phil Harvey - July 06, 2025, 04:29:10 PM
That's what I assumed.

- Phil
#28
Bug Reports / Feature Requests / Re: Geotagging with ExifTool
Last post by Phil Harvey - July 06, 2025, 04:27:36 PM
ExifTool will use either GGA or RMC, but GGA doesn't contain the date so it is better if RMC is available.  It will take information from both if they both exist.  The GLL, GSA, ZDA and PTNTHPR sentences are also supported.

Thanks StarGeek for pointing out the old version.  There have been a number of improvements in the -geotag feature since then.

The command you give looks good.

- Phil
#29
The Image::ExifTool API / Re: Problem with tag qualifier...
Last post by Tom Cunningham - July 06, 2025, 01:11:41 PM
Quote from: Tom Cunningham on July 06, 2025, 11:17:06 AMBTW, I am using code generated by Google API.

Should be Google AI, not API.
#30
Bug Reports / Feature Requests / Re: Geotagging with ExifTool
Last post by antb - July 06, 2025, 12:43:37 PM
hi Phil;
I made a test with exiftool-13.32_64.zip
looks more stable indeed.

do you confirm that exiftools uses rather RMC sentence than GGA for the timestamp synchronization ?

I read your previous post and this is my understanding from your comment.

please detail what are the priority if we feed several NMEA sentences in the exiftools command we pass with NMEA log as argument for geotagging.

currently, here is my command :

exiftool.exe -v4 -geosync=+02:00:02 -geotag "C:\Users\Documents\__TRASH\100RICOH\02-07-2025\GGA_ONLY_USB_20250702_183901.log" "-Geotime<DateTimeOriginal" C:\Users\Documents\__TRASH\100RICOH\02-07-2025