Инструмент EXIF ​​и видеофайлы, которые сохраняются с метками времени UTC

Мне любопытно, если кто-нибудь мог бы дать мне некоторое представление о текущей проблеме, которую я имею.

Для некоторого контекста у нас с женой есть телефон 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 выполняет копирование + сортировку.

Этот процесс удивительный, и я очень доволен им. Хотя есть один снэфу - видеофайлы, кажется, записываются в 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 часов, поскольку все они будут в пределах этого справочник месяца. Но, тем не менее, я заинтригован этим и задаюсь вопросом ... почему?

Любая помощь или понимание будет очень цениться!

2
задан 26 December 2017 в 22:24

1 ответ

По словам Фила Харви (создателя exiftool), временные метки Quicktime должны быть установлены на время UTC согласно стандарту. Но, похоже, что многие камеры этого не делают, поэтому exiftool не использует часовой пояс и принимает время как написано. См. в третьем абзаце под тегами Quicktime

. В Exiftool есть возможность исправить это. Если вы используете exiftool версии 9.40 или более поздней, вы можете добавить -api QuickTimeUTC к команде, и она будет считать, что метки времени правильно записаны как UTC, и преобразовать их в местное время.

2
ответ дан 26 December 2017 в 22:24
  • 1
    Необходимо будет быть корнем для монтирования разделов, если у Вас не будет специальных настроек в Вашем fstab файле. Я don' t знают то, что ntfs настройки для этого, таким образом, я просто использую sudo mount, если мне нужно к - но мне смонтировали мои ntfs разделы в моем fstab так или иначе. Основной вопрос там для меня должен получить полномочия, корректные для доступа к нему однажды it' s смонтированный. BTW, как Вы пытаетесь смонтировать зверя? – Marty Fried 31 May 2012 в 20:51
  • 2
    Необходимо будет быть корнем для монтирования разделов, если у Вас не будет специальных настроек в Вашем fstab файле. Я don' t знают то, что ntfs настройки для этого, таким образом, я просто использую sudo mount, если мне нужно к - но мне смонтировали мои ntfs разделы в моем fstab так или иначе. Основной вопрос там для меня должен получить полномочия, корректные для доступа к нему однажды it' s смонтированный. BTW, как Вы пытаетесь смонтировать зверя? – Marty Fried 31 May 2012 в 20:51
  • 3
    Необходимо будет быть корнем для монтирования разделов, если у Вас не будет специальных настроек в Вашем fstab файле. Я don' t знают то, что ntfs настройки для этого, таким образом, я просто использую sudo mount, если мне нужно к - но мне смонтировали мои ntfs разделы в моем fstab так или иначе. Основной вопрос там для меня должен получить полномочия, корректные для доступа к нему однажды it' s смонтированный. BTW, как Вы пытаетесь смонтировать зверя? – Marty Fried 31 May 2012 в 20:51
  • 4
    Необходимо будет быть корнем для монтирования разделов, если у Вас не будет специальных настроек в Вашем fstab файле. Я don' t знают то, что ntfs настройки для этого, таким образом, я просто использую sudo mount, если мне нужно к - но мне смонтировали мои ntfs разделы в моем fstab так или иначе. Основной вопрос там для меня должен получить полномочия, корректные для доступа к нему однажды it' s смонтированный. BTW, как Вы пытаетесь смонтировать зверя? – Marty Fried 31 May 2012 в 20:51
  • 5
    Необходимо будет быть корнем для монтирования разделов, если у Вас не будет специальных настроек в Вашем fstab файле. Я don' t знают то, что ntfs настройки для этого, таким образом, я просто использую sudo mount, если мне нужно к - но мне смонтировали мои ntfs разделы в моем fstab так или иначе. Основной вопрос там для меня должен получить полномочия, корректные для доступа к нему однажды it' s смонтированный. BTW, как Вы пытаетесь смонтировать зверя? – Marty Fried 31 May 2012 в 20:51
  • 6
    Необходимо будет быть корнем для монтирования разделов, если у Вас не будет специальных настроек в Вашем fstab файле. Я don' t знают то, что ntfs настройки для этого, таким образом, я просто использую sudo mount, если мне нужно к - но мне смонтировали мои ntfs разделы в моем fstab так или иначе. Основной вопрос там для меня должен получить полномочия, корректные для доступа к нему однажды it' s смонтированный. BTW, как Вы пытаетесь смонтировать зверя? – Marty Fried 31 May 2012 в 20:51

Другие вопросы по тегам:

Похожие вопросы: