2016-04-28 71 views
0

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

更具体地说,我使用了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文件。用一个体面的命名方案来分类我的所有照片(和现场照片)。

如何调整下面的脚本以获取mov文件的正确名称?

,或者

如何使用榛告诉每一个MOV文件有JPG的原始日期时间使用相同的名称?

通过这最后一件事我的意思是有一个脚本,如果喂了一个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

回答

0

这里有一个策略:从所有传送文件的修改时间减去5小时,然后进行正常:

cd folder-with-your-stuff 
find * -name "*.mov" | 
    while read filepath; do 
    olddate=$(date -R -r "$filepath") 
    touch -d "$olddate - 5 hours" "$filepath" 
    done 

编号:https://askubuntu.com/questions/62492/how-can-i-change-the-date-modified-created-of-a-file

+0

谢谢!但是我害怕的是,如果我在不同的时区拍摄照片,所有的mov文件现在都不会有不同的小时数......更好的策略可能是制作一个脚本,需要一个mov文件,寻找具有相同名称的jpg,并使用exiftool来获取正确的日期。但我不知道该怎么写。 –

+0

对不起,我想我误解了你的问题。好像你在文件内部使用exif数据,而我的答案只影响文件系统修改日期。你能告诉我一个mov-jpg对的'stat a.jpg'和'stat a.mov'的结果吗?另外,每个mov和相应的jpg在同一个文件夹中,或者至少在系统附近的文件夹中? – webb

+0

我在统计输出中寻找什么?我看到了一堆日期,但没有一个是正确的(即没有一个显示10:24:38)。 Apple Photos存储文件的方式一塌糊涂。我总是可以进行手动导出,这样所有的jpg和mov都会在同一个文件夹中成对出现(同名,不同的扩展名)。这最后一个解决方案并不理想,但也许使写脚本更容易一些? –

0

很旧的在这一点上,而是思想我会沉重。

GPSDateTime始终在UTC时区(因此Z附加到日期)。因此,MediaCreateDate似乎设置为UTC时间,该区域被剥离。

0

还在权衡对这个老问题:

当有现场照片为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 Content Identifier : C09DCB26-D321-4254-9F68-2E2E7FA16155