【问题标题】:Exiftool DateTimeOriginal returning numbersExiftool DateTimeOriginal 返回数字
【发布时间】:2022-01-15 07:20:30
【问题描述】:

在 Windows 上使用 Phil Harvey 的 Exiftool 版本 12.31 时,DateTimeOriginal 字段返回数字,这似乎是一个 HEX 值,但它太大而没有任何意义。作为一个 DEC 值,它也没有任何意义,所以我想它可能是某种元组,但我不知道如何解析它(不应该被 Exiftool 解析吗?)。

这里是link to the original image

> exiftool -DateTimeOriginal "DSC02102.JPG"
Date/Time Original              : 50 48 50 49 58 49 50 58 48 55 32 49 53 58 53 53 58 50 52 0

Windows 不知何故可以获得正确的日期和时间(2021-12-07 15:55),所以我认为文件元数据没有损坏。

如何使用 Exiftool 获取正确的日期和时间?

【问题讨论】:

    标签: metadata exif exiftool


    【解决方案1】:

    这是exiftool FAQ #3。因为您没有包含-G (-groupNames) option-a (-duplicates) option,所以您看不到所有数据。当你包含这些选项时,你会看到这个

    C:\>exiftool -G1 -a -s -DateTimeOriginal Y:\!temp\aa\bbb\DSC02102.JPG
    [ExifIFD]       DateTimeOriginal                : 2021:12:07 15:55:24
    [IFD0]          DateTimeOriginal                : 50 48 50 49 58 49 50 58 48 55 32 49 53 58 53 53 58 50 52 0
    

    如您所见,文件中有多个DateTimeOriginal 标签。该标记的标准位置在 EXIF 块的 ExifIFD 子组中,并且具有正确的值,这就是 Windows 可以读取它的原因。 IFD0 子组中的第二个 DateTimeOriginal 不合适。如果您将第二个标签中的每个数字转换为 ASCII 字符,您会看到它与正确的 DateTimeOriginal 标签具有相同的值,只是十六进制值。

    另一个有用的 exiftool 命令是验证文件以查看存在哪些问题

    C:\>exiftool -g1 -a -s -warning -validate Y:\!temp\aa\bbb\DSC02102.JPG
    ---- ExifTool ----
    Warning                         : [minor] Possibly incorrect maker notes offsets (fix by 4088?)
    Warning                         : [minor] Suspicious MakerNotes offset for Tag9401
    Warning                         : [minor] Non-standard ExifIFD tag 0xea1c Padding
    Warning                         : [minor] Non-standard ExifIFD tag 0xea1d OffsetSchema
    Warning                         : Non-standard format (int32s) for GPS 0x0005 GPSAltitudeRef
    Warning                         : Wrong IFD for 0x9003 DateTimeOriginal (should be ExifIFD not IFD0)
    Warning                         : Non-standard format (int8u) for IFD0 0x9003 DateTimeOriginal
    Warning                         : [minor] Invalid date/time format for EXIF:DateTimeOriginal
    Warning                         : Wrong IFD for 0x9004 CreateDate (should be ExifIFD not IFD0)
    Warning                         : Non-standard format (int8u) for IFD0 0x9004 CreateDate
    Warning                         : [minor] Invalid date/time format for EXIF:CreateDate
    Warning                         : [minor] Non-standard IFD0 tag 0xea1c Padding
    Warning                         : Missing required JPEG ExifIFD tag 0xa001 ColorSpace
    Validate                        : 13 Warnings (7 minor)
    

    您可以使用此命令删除不正确的标签
    exiftool -IFD0:DateTimeOriginal= file.jpg

    要仅提取正确的标签,您必须指定子组
    exfitool -ExifIFD:DateTimeOriginal file.jpg

    【讨论】:

    • 查看该文件的元数据,似乎有两个程序编辑了该文件,QBase 3D 和 PPK Geotag。其中之一可能是错误地编辑文件的程序。直接从相机中出来的数据似乎不太可能不正确。
    • 似乎还有一个不正确的CreateDate标签。您可以像删除 DateTimeOriginal 标记一样删除它。
    • 通过添加 -v3 选项和生成的警告进一步查看文件,不正确的标签被保存为 20 个 8 位无符号整数 (int8u[20]) 而不是应该的 string[20]成为。 Exiftool 似乎是将整数转换为十六进制的工具。我已经在 exiftool 论坛上链接了该文件,因此作者可以仔细查看该文件并决定他是否需要对此做任何事情。
    • 你是对的,有 2 个程序编辑了文件,QBase 3D 是用于在文件中注入 GPS 坐标的程序,bot 现在我看到它做得更多。通过使用您指出的标志,我能够找到正确的数据,并且我还注意到其他几个字段的重复项。现在我必须在我的代码中找到一种解决方法来处理这种文件并检测哪个标签具有正确的数据。
    • Here's a post exiftool 的作者解决了这个问题。
    猜你喜欢
    • 2018-07-12
    • 1970-01-01
    • 2019-05-20
    • 1970-01-01
    • 2019-10-08
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多