bash - Apple Live Photos 元数据

标签 bash macos metadata exif apple-live-photos

当我从 Mac 上的照片应用程序导出实时照片时,它会创建两个单独的文件:一个 jpg 和一个 mov。 jpg 带有所有 exif 数据,而 mov 文件似乎总是延迟五个小时。

更具体地说,我使用了 exiftool -option 文件名。这些是 jpg 的结果(yyyy-mm-dd 对所有人都是一样的,所以我只包括时间输出)。

DateTimeOriginal 10:24:38
GPSDateTime 15:24:38Z
MediaCreateDate none
FileModifyDate 15:47:46-05:00
ModifyDate 10:24:38

这些是 mov 的结果。

DateTimeOriginal none
GPSDateTime none
MediaCreateDate 15:24:38
FileModifyDate 15:47:29-05:00
ModifyDate 15:24:40

它应该显示的时间是 jpg 的 DateTimeOriginal。看起来 mov 的 MediaCreateDate 关闭了五个小时,这可能是由于与时区相关的故障。

无论如何,我问这个问题的原因是我想从使用 Apple 照片过渡到 dropbox 中的普通文件夹树。问题是有一个好的命名方案来保持排序。我在谷歌上搜索了一下,使用 Hazel(加上下面的脚本)工作得很好,如果它不是用于实时照片的 mov 文件的话。使用合适的命名方案对我所有的照片(和实时照片)进行排序。

How can I tweak the script below to get the correct name for the mov files?

或者,或者,或者

How can I use Hazel to tell each mov file to have the DateTimeOriginal of the jpg with the same name?

最后这件事我的意思是有一个脚本,如果输入一个 mov 文件,它会查找同名的 jpg 并使用它的 DateTimeOriginal。

顺便说一句,这里的第二个答案(Apple Live Photo file format)似乎解释了照片如何跟踪 mov 文件的元数据,但我不知道如何使用它。

我实际上找到了两个脚本。第一个在这里 ( https://www.macstories.net/reviews/better-dropbox-camera-uploads-with-camerasync/ )。

<?php
date_default_timezone_set("Europe/Rome");
$date = exif_read_data($argv[1],"EXIF");
$date = $date["DateTimeOriginal"];
$time = date_parse_from_format("Y:m:d H:i:s",$date);
$time = mktime($time["hour"],$time["minute"],$time["second"],$time["month"],$time["day"],$time["year"]);
touch($argv[1],$time,$time);
?>

第二个(https://www.noodlesoft.com/forums/viewtopic.php?f=4&t=2218)是

exiftool -P -d '%Y.%m.%d at %H.%M.%S' \
   '-filename<${FileModifyDate;}.%e' \
    '-filename<${GPSDateTime;}.%e' \
    '-filename<${MediaCreateDate;}.%e' \
    '-filename<${ModifyDate;}.%e' \
    '-filename<${DateTimeOriginal;}.%e' \
    "$1"

我之前在 apple.stackexchange 上问过这个问题,但没有引起注意。 https://apple.stackexchange.com/questions/236377/live-photos-metadata

最佳答案

同时权衡这个老问题:

当将实时照片作为单独的 JPG 和 MOV 文件处理时,元数据将允许您链接文件。 MOV 文件有一个名为 ContentIdentifier 的 EXIF 标签,它看起来与 JPG 文件的 MakerNotes EXIF 标签中的标签 Apple_0x0011 相同。

使用exiftool:

$ exiftool -u -s IMG_8403.JPG | grep Apple_0x0011 Apple_0x0011:C09DCB26-D321-4254-9F68-2E2E7FA16155 $ exiftool -ContentIdentifier IMG_8403.MOV 内容标识符:C09DCB26-D321-4254-9F68-2E2E7FA16155

关于bash - Apple Live Photos 元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36904108/

相关文章:

linux - 使用 gnu-coreutils、bash 获取二进制文件的一部分

linux - 如何删除名称为 '' $'\r' 的文件?

c++ - 如何使用 LD_LIBRARY_PATH 和链接使其真正正确?

python - 在 OSX 中,将应用程序名称从 "python"更改为

java - 无法运行程序 "..."error=2,没有这样的文件或目录 (java)

macos - 冲泡水龙头是什么意思?

android - 如何为网站快捷方式(主屏幕)配置应用程序名称?

php - 在 WordPress 中从自定义元设置背景图像

linux - 调用 bash 脚本并从另一个 bash 脚本填充输入数据

python - 为什么拥有一个未绑定(bind)到 SQLAlchemy 引擎的元数据对象很有用?