Статьи

ExifTool: читаємо і редагуємо метадані файлів

  1. Загальні відомості
  2. Деякі приклади роботи ExifTool з фотографіями
  3. Читання і редагування тегів
  4. Геотеги, прочитати і редагувати
  5. Маніпуляції з датою і часом

Утиліта ExifTool призначена для перегляду і редагування метаданих великої кількості форматів файлів. В першу чергу використовується для перегляду і редагування параметрів зйомки в файлах цифрових фотографій. Ліцензія: GPL. сайт: sno.phy.queensu.ca/~phil/exiftool/

Загальні відомості

Дуже багато форматів файлів крім основного змісту мають в собі ще й метадані. Ці метадані можуть в кожному конкретному випадку описувати різні додаткові параметри вмісту файлу.

Найбільш відомим стандартом метаданих, є стандарт EXIF (англ. Exchangeable Image File Format) - стандарт, що дозволяє додавати до різних типів файлів додаткову інформацію, що описує умови і способи їх отримання, GPS координати, авторство, коментарі та багато іншого. Найбільш активно стандарт EXIF ​​використовується для фотозображень, і практично кожен сучасний цифровий фотоапарат записує велику кількість EXIF ​​даних на кожен фотознімок.

Утиліта ExifTool призначена для перегляду і редагування метаданих великої кількості форматів файлів

Мал. Крім безпосередньо зображення, цифрова фотографія може включати і додаткові метадані

Інші формати даних теж можуть мати свої метадані. Це відеофайли, різні файли документів - PDF, Djvu і т.д.

Переглянути та редагувати метадані файлів можна за допомогою великої кількості утиліт і програм. Особливо відзначимо консольную утиліту ExifTool як найбільш універсальний і потужний інструмент для роботи з метаданими файлів.

Ця утиліта працює з командного рядка. Вона існує для будь-яких операційних системах - Linux, Windows, MacOS. Однак для неї є і доповнення у вигляді додатку з графічним інтерфейсом, як, наприклад, Exiftoolgui для Windows.

Мал. Exiftoolgui для Windows

Ще прикладом графічної оболонки для ExifTool можна назвати утиліту PyExifToolGUI. ( Читати докладніше про PyExifToolGUI )

Мал. PyExifToolGui

Судячи з назви, утиліта ExifTool в першу чергу призначена для роботи з метаданими EXIF ​​в цифрових фотографіях. Підтримуються формати фотозображень: JPEG, TIFF, PNG, DNG, NEF, PEF, CRW, JP2, CR2, MRW, ARW, SR2, ORF, RAF, і інші.

Але слід враховувати, що також утиліта ExifTool може працювати з метаданими в інших типах файлів.

  • відео та аудіо: 3gp, AVI, MPG, MOV, WEBM, MP3, MP4, Ogg і ін .;
  • документи: PDF, Djvu, RTF, PPT, EPUB та ін .;
  • архіви і бінарні файли: ZIP, DLL і ін.

При цьому для одних файлів доступно як читання метаданих, так і їх редагування. А для інших типів файлів доступно тільки читання. Повну інформацію про численні можливості утиліти ExifTool почерпнути, виконавши, після установки програми, команду

man exiftool

В мануалі буде таблиця, де символами буде позначена можливість редагування метаданих для такого типу файлу. Символ (r) - метадані тільки для читання, (w) - метадані можна за допомогою ExifTool перезаписувати, (c) - метадані можна створювати.

Символ (r) - метадані тільки для читання, (w) - метадані можна за допомогою ExifTool перезаписувати, (c) - метадані можна створювати

Мал. ExifTool. Таблиця редагований метаданих в різних типах файлів

Деякі приклади роботи ExifTool з фотографіями

Розглянемо кілька опцій цієї консольної утиліти, необхідних для базової роботи з метаданими EXIF ​​в файлах фотозображень, так як цей формат метаданих використовується практично у всіх цифрових фотокамерах. Хоча ExifTool працює і з форматами метаданих XMP, IPTC.

Читання і редагування тегів

Прочитати і відобразити всі дані EXIF ​​зображення.

exiftool FOTO.JPG exiftool FOTO Мал. ExifTool

Прочитати якийсь окремий тег в метаданих зображення - наприклад, інформацію тега ISO.

exiftool -ISO FOTO.JPG

Показати теги, в які можна редагувати.

exiftool -listw FOTO.JPG

Запис значення конкретного тега EXIF ​​в файл зображення робиться через символ присвоювання =.

exiftool -ISO = '200' FOTO.JPG

Видалення значення конкретного тега EXIF ​​в файлі зображення робиться через привласнення порожнього значення.

exiftool -ISO = '' FOTO.JPG

Природно консольна утиліта exiftool хороша для пакетної обробки файлів, коли один або кілька однакових тегів потрібно записати або видалити в безлічі зображень. Нижче команда запише значення ISO в усі файли з розширенням jpg в цій папці. Символ * в імені файлу - шаблон для будь-якого імені.

exiftool -ISO = '200' * .JPG

При редагуванні тегів утиліта створює поряд з новим файлом файл-оригінал з суфіксом "_original". Якщо цього не потрібно, потрібно використовувати додаткову опцію -overwrite_original.

exiftool -ISO = '200' -overwrite_original * .JPG

Примітка: якщо ж цю опцію забули написати і ExifTool створив багато архівних копій з суфіксом "_original", то видалити ці копії можна виконавши в консолі для систем Linux в поточному каталозі нескладний однорядковий скрипт:

for f in * _original; do rm $ f; done

Ви маєте можливість копіювати теги з одного файлу в інший. Нижче приклад команди, коли теги EXIF ​​будуть скопійовані з файлу FOTO.DNG в FOTO.JPG

exiftool -TagsFromFile FOTO.DNG FOTO.JPG

Так можливо копіювання тегів для декількох файлів в папці (оригінальні файли і похідні лежать поруч).

exiftool -TagsFromFile% d% f.DNG -r -ext JPG путь_к_каталогу

Назва та пояснення до найбільш популярним EXIF-тегами

  • Make - виробник камери
  • Model - модель камери
  • DateTime - дата останнього зміни зображення
  • ExposureTime - витримка
  • FNumber - число діафрагми
  • ISO - світлочутливість
  • DateTimeOriginal - час зйомки
  • FocalLength - фокусна відстань об'єктива на камері
  • Artist - автор
  • Copyright - копірайт
  • UserComment - коментарі користувача до файлу

Щоб не вводити кожен раз який-небудь набір тегів, їх можна записати в окремий текстовий файл. Наприклад, набір загальних тегів для будь-яких оцифрованих знімків з фотоапарата "Зміна 8М" можна записати у вигляді такого текстового файлу з назвою, наприклад lens8M.txt.

-n -EXIF: LensModel = LOMO T-43 (Triplet) 40mm f / 4 -EXIF: Model = Smena 8M -EXIF: FocalLength = 40 -EXIF: MaxApertureValue = 4

А потім просто викликати в якості параметра опції - @.

exiftool - @ lens8M.txt * .JPG

Геотеги, прочитати і редагувати

Exiftool - найпростіший і найдоступніший спосіб додати метадані про географічне розташування (геотеги) як в файли цифрових фотографій, так і в відеозаписи.

Видалити конкретні геотеги через порожнє значення. Наприклад, правильним вважається при публікації фотографій в інтернеті видалити з них геотеги. Примітка: між двома одинарними лапками -geotag = '' має бути пусте значення, а не пробіл.

exiftool -geotag = '' FOTO.JPG

І навпаки, наприклад, встановити довготу і широту в метаданих цифрового фотознімку можна за допомогою параметрів -GPSLongitude і -GPSLatitude відповідно. наприклад

exiftool -GPSLongitude = "27,46" -GPSLatitude = "53,89" FOTO.JPG

ExifTool може працювати з GPS-треками, в результаті чого можна синхронізувати координати GPS-треку і час створення фотознімку. Тобто, якщо під час фотозйомок створювався GPS-трек, то з нього за допомогою ExifTool можна автоматично отримати гео-координати, відповідні часу створення знімка, і записати їх в метадані фотографії.

exiftool -geotag track.gpx * .JPG

Маніпуляції з датою і часом

Неправильно виставлене в фотокамері час - ще одна поширена прикра помилка, яку ExifTool допоможе виправити. Особливо це неприємно при синхронізації GPS-треків і фотографій. Тому що синхронізація з координатами GPS-треку відбувається за часом створення фотографії, і відставання-поспіх фотокамери навіть на одну хвилину може привести до великих помилок координат місця зйомки в метаданих цифрового фотознімку. Виправити ситуацію можна за допомогою спеціального формату рік: місяць: день години: хвилини: секунди для опції -DateTimeOriginal, який нескладно зрозуміти на наступному прикладі. Припустимо, нам треба зробити фотографію старше «старше» на один рік і одну годину.

exiftool "-DateTimeOriginal- = 1: 0: 0 1:00:00" FOTO.JPG

Зверніть увагу на знак зменшення - перед знаком =. Якщо фотографію потрібно зробити «молодше» за часом створення, то ставиться знак +.

Можна змінити відразу три тимчасових тега - DateTimeOriginal, CreateDate і ModifyDate. Для цього слід використовувати опцію -AllDates.

Можна здійснити перейменування імен файлів зображень на основі дати з EXIF ​​з видаленням оригінального імені файлу.

exiftool -d% Y% m% d-% H% M% S. %% e "-filename <CreateDate" * .JPG

Перейменування на основі дати створення без видалення початкового імені файлу.

exiftool -d% Y% m% d-% H% M% S %% - c - %% f. %% e "-filename <CreateDate" * .JPG

В ході маніпуляцій ExifTool поміняє дату модифікації файлу. Відновити оригінальну дату оригіналу:

exiftool '-filemodifydate <datetimeoriginal' FOTO.JPG

ⓜ ⬇ 07-02-2015

Новости