Мне интересно, если кто-нибудь может дать мне некоторое представление о текущем выпуске, который у меня есть.
В каком-то контексте у меня с женой есть телефон Android (Moto G5 Plus). Телефоны синхронизируют все элементы в папке DCIM с моим сервером Ubuntu через SFTP. Элементы хранятся в каталоге «unsorted_pictures». Однажды ночью выполняется задание cron, выполняющее скрипт, который автоматически копирует содержимое из unsorted_pictures на изображения / год / месяц. Позже (после максимального количества телефонов в космосе) я очищу каталог unsorted_pictures как шаг обслуживания.
Скрипт, какой бы он ни стоил, выглядит следующим образом:
#!/bin/bash
exiftool -overwrite_original_in_place -P -if 'not $CreateDate' '-CreateDate<FileModifyDate' -r /mnt/vault/unsorted_pictures/staging
exiftool -o . '-Directory<CreateDate' -d /mnt/vault/pictures/%Y/%m -r /mnt/vault/unsorted_pictures/staging
exit
Итак, первая строка exiftool проверяет, существует ли CreateDate. Если это не так, он использует FileModifyDate для создания параметра CreateDate. Это действительно полезно только для фотографий, сохраненных в Hangouts, поскольку Google, похоже, лишает данные exif. (?!) После этого вторая линия exiftool выполняет сортировку + сортировку.
Этот процесс выглядит потрясающе, и я очень доволен им. Однако есть один snafu - видеофайлы, по-видимому, записываются в UTC, тогда как изображения, по-видимому, записываются по местному времени. Ниже приведен видеофайл, который был немедленно перенесен на мой сервер, и exiftool был запущен против него, чтобы проверить все отметки времени.
administrator@vault:/mnt/vault/unsorted_pictures$ exiftool -time:all -s VID_20171225_214456599.mp4
FileModifyDate : 2017:12:25 21:47:02-05:00
FileAccessDate : 2017:12:25 21:47:00-05:00
FileInodeChangeDate : 2017:12:25 21:47:02-05:00
CreateDate : 2017:12:26 02:45:00
ModifyDate : 2017:12:26 02:45:00
TrackCreateDate : 2017:12:26 02:45:00
TrackModifyDate : 2017:12:26 02:45:00
MediaCreateDate : 2017:12:26 02:45:00
MediaModifyDate : 2017:12:26 02:45:00
administrator@vault:/mnt/vault/unsorted_pictures$ date
Mon Dec 25 21:47:23 EST 2017
Как вы можете видеть, CreateDate установлен, по-видимому , в будущем. Далее я выполнил команду «date», чтобы вы могли видеть текущее местное время, когда это произошло. В верхних строках вы можете видеть отметки времени, заканчивающиеся на 05:00, и я понимаю, что это временный дифференциал для UTC.
На мои актуальные вопросы:
1) Я попробовал несколько приложений для камеры на своей Motorola, но все они дали то же самое поведение. Это говорит о том, что это не настройка приложения. Есть ли способ сохранить мои видеозаписи в формате UTC? Картинки в порядке, это просто видео. Я считаю, что это немного странно, но онлайн-поиск предполагает, что это обычное явление, но мне еще предстоит услышать и понять, почему.
2) Я уверен, что могу добавить некоторую логику в свой сценарий, чтобы просто отсортировать изображения через CreateDate и сортировать типы видеофайлов через FileModifyDate или даже добавить дополнительный параметр для систематического повторного добавления всех видео за 5 часов. Но мне стало интересно, есть ли способ, чтобы exiftool посмотрел файл mp4 и признал разницу во времени UTC? Я знаю, что видеофайлы - это другой зверь, а exiftool в основном сосредоточен на изображениях, но, тем не менее, при условии, что exiftool делает такую хорошую работу с подтверждением метаданных даже на этих видеороликах, я подумал, что может быть способ настроить его для просмотра не-UTC время. Или, может быть, нет надежды, если телефон будет записывать в UTC. / shrug
Возможно, это еще больше поводов для сортировки по годам / месяцам вместо года / месяца / дня, так как я даже не скажу, что видео переносятся на 5 часов, так как все они будут в пределах в этом месяце. Но все же я нахожу себя заинтригованным этим и задаюсь вопросом ... почему?
Любая помощь или понимание были бы очень оценены!
Согласно Филу Харви (создателю exiftool), временные метки Quicktime должны быть установлены на UTC по стандарту. Но, похоже, многие камеры этого не делают, поэтому exiftool не принимает часовой пояс и принимает время, как написано. См. Третий абзац в тегах Quicktime
Exiftool включает в себя возможность исправления этого. Если вы используете exiftool ver 9.40 или новее, вы можете добавить -api QuickTimeUTC в команду, и он предположит, что отметки времени правильно написаны в формате UTC и преобразуют их в локальное время.
Согласно Филу Харви (создателю exiftool), временные метки Quicktime должны быть установлены на UTC по стандарту. Но, похоже, многие камеры этого не делают, поэтому exiftool не принимает часовой пояс и принимает время, как написано. См. Третий абзац в тегах Quicktime
Exiftool включает в себя возможность исправления этого. Если вы используете exiftool ver 9.40 или новее, вы можете добавить -api QuickTimeUTC в команду, и он предположит, что отметки времени правильно написаны в формате UTC и преобразуют их в локальное время.
Согласно Филу Харви (создателю exiftool), временные метки Quicktime должны быть установлены на UTC по стандарту. Но, похоже, многие камеры этого не делают, поэтому exiftool не принимает часовой пояс и принимает время, как написано. См. Третий абзац в тегах Quicktime
Exiftool включает в себя возможность исправления этого. Если вы используете exiftool ver 9.40 или новее, вы можете добавить -api QuickTimeUTC в команду, и он предположит, что отметки времени правильно написаны в формате UTC и преобразуют их в локальное время.