简体   繁体   English

如何使用 exiftool 为目录中的所有图像添加 subsecdatetimeoriginal?

[英]How to add subsecdatetimeoriginal for all images in a directory using exiftool?

If i use below command then i get Warning: No writable tags set如果我使用下面的命令然后我得到Warning: No writable tags set

exiftool '-subsecdatetimeoriginal+<0:0:0${filesequence;$_*=0.500}' -overwrite_original ./images

and if i do:如果我这样做:

exiftool '-datetimeoriginal+<<0:0:0${filesequence;$_*=0.500}' -overwrite_original ./images

This is changing the date and time part correctly but not updating the millisecond part for SubSecTimeOriginal这是正确更改日期和时间部分但不更新SubSecTimeOriginal的毫秒部分

so if first image has SubSecTimeOriginal=100 then all images have same value when it should all be different.因此,如果第一张图像具有SubSecTimeOriginal=100 ,则所有图像都具有相同的值,但它们应该都不同。

The SubSecDateTimeOriginal tag is not a tag that is actually embedded in the file, but is instead a Composite tag that exiftool creates on the fly while reading/writing. SubSecDateTimeOriginal标签不是实际嵌入文件中的标签,而是 exiftool 在读取/写入时即时创建的复合标签 This tag is cannot be shifted and unfortunately, there isn't a warning about this unless you add the -v3 ( -verbose3 ) option , where it will say Composite:SubSecDateTimeOriginal is not shiftable .这个标签不能被移动,不幸的是,没有关于这个的警告,除非你添加-v3 ( -verbose3 ) 选项,它会说Composite:SubSecDateTimeOriginal is not shiftable

A workaround would be to use an XMP date/time stamp tag, as they can contain the full time value (subsecond and time zone), unlike EXIF time tags which are split into three separate tags.解决方法是使用 XMP 日期/时间戳标签,因为它们可以包含完整的时间值(亚秒和时区),这与 EXIF 时间标签不同,EXIF 时间标签分为三个单独的标签。 XMP:DateTimeOriginal would be the most suitable tag. XMP:DateTimeOriginal将是最合适的标签。

If it's not already set, you would first copy the time from SubSecDateTimeOriginal .如果尚未设置,您将首先从SubSecDateTimeOriginal复制时间。 Then you would run your command to increment the time stamp.然后你会运行你的命令来增加时间戳。 Finally, you would copy the XMP:DateTimeOriginal back into SubSecDateTimeOriginal .最后,您可以将XMP:DateTimeOriginal复制回SubSecDateTimeOriginal

Example commands and output:示例命令和 output:

C:\>exiftool -G1 -a -s -EXIF:Time:All -XMP:Time:All -SubSecDateTimeOriginal Y:\!temp\ccc
======== Y:/!temp/ccc/File-1.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-2.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-3.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-4.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
    1 directories scanned
    4 image files read

C:\>exiftool -P -overwrite_original "-XMP:DateTimeOriginal<SubSecDateTimeOriginal" Y:\!temp\ccc
    1 directories scanned
    4 image files updated

C:\>exiftool -G1 -a -s -EXIF:Time:All -XMP:Time:All -SubSecDateTimeOriginal Y:\!temp\ccc
======== Y:/!temp/ccc/File-1.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:00.00-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-2.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:00.00-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-3.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:00.00-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-4.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:00.00-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
    1 directories scanned
    4 image files read

C:\>exiftool -P -overwrite_original "-XMP:DateTimeOriginal+<0:0:0${filesequence;$_*=0.500}" Y:\!temp\ccc
    1 directories scanned
    3 image files updated
    1 image files unchanged

C:\>exiftool -G1 -a -s -EXIF:Time:All -XMP:Time:All -SubSecDateTimeOriginal Y:\!temp\ccc
======== Y:/!temp/ccc/File-1.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:00.00-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-2.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:00.50-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-3.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:01.00-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-4.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:01.50-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
    1 directories scanned
    4 image files read

C:\>exiftool -P -overwrite_original "-SubSecDateTimeOriginal<XMP:DateTimeOriginal" Y:\!temp\ccc
    1 directories scanned
    4 image files updated

C:\>exiftool -G1 -a -s -EXIF:Time:All -XMP:Time:All -SubSecDateTimeOriginal Y:\!temp\ccc
======== Y:/!temp/ccc/File-1.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:00.00-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.00-07:00
======== Y:/!temp/ccc/File-2.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:00
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 50
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:00.50-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:00.50-07:00
======== Y:/!temp/ccc/File-3.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:01
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 00
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:01.00-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:01.00-07:00
======== Y:/!temp/ccc/File-4.jpg
[ExifIFD]       DateTimeOriginal                : 2022:05:08 12:00:01
[ExifIFD]       OffsetTimeOriginal              : -07:00
[ExifIFD]       SubSecTimeOriginal              : 50
[XMP-exif]      DateTimeOriginal                : 2022:05:08 12:00:01.50-07:00
[Composite]     SubSecDateTimeOriginal          : 2022:05:08 12:00:01.50-07:00
    1 directories scanned
    4 image files read

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM