2023/09/13

Exifの深くて暗い川

 (松浦さんの新しい記事が面白かったので、タイトルオマージュしてみた。いや、深い意味はない)

人生初の射撃を終えたあと、深夜の打ち上げに備えて早めに眠ろうと知人たちと別れてBest Westernに戻った。

今回の渡航では荷物を軽くしたくてMacBook Proは家に置いてiPhoneとiPad miniだけを持ってきている。ラップトップなしで海外に来るのはじつに30年ぶりくらいか。そのかわりミニ三脚を2つとSONYとCanonのコンデジを持ち込んだ。夜間の打ち上げなのでどうせあまり綺麗な写真を撮れないというかじっくり撮ろうとすると打上げそっちのけでカメラと格闘するはめになるので、コンデジ2台を三脚に固定して動画を撮りっぱなしにして肉眼で打上げをじっくりと堪能しようという戦略。

来る途中の飛行機で撮った写真やWave AcrossやKSCVCで撮った写真がすでに大量にあるので、はやめに整理しておこうと思ってファイルをiCloudに移動し始めた。(この時うっかりiPhoneをモバイルルーターに接続したままだった)

いつもならMac経由でポータブルHDDに転送し、日付とキーワードをつけたフォルダに階層保存する。バックアップとしてAmazon Photoにもアップロードする。ポータブルHDDはTime Machine経由で別の大容量HDDにバックアップさせる。今回はMacがないのでそれぞれの場所で撮った写真をiCloudのフォルダに分けて別々にアップロードした。こうすればあとでMacからiCloudフォルダを開いた時にファイル修正日時が撮影日時のままでアップロードできる。

「なんでiCloudとかGoogle Photoに管理させないの? 楽なのに」と思われるかもしれないけれど、写真を撮りまくるペースにクラウドのストレージ単価がとても追いつかない。10TBくらいのストレージをお気軽に使い倒せるお値段にならなければ、やっぱりポータブルHDDでファイル管理するのが最安最強!ということになる。

ここで問題になるのが「あの時撮ったあの写真を誰かに見せたい時にどうやって引っ張りだしてくるか」ということ。

まずそのイベントの日付を確認してフォルダを見つけ出す。フォルダの中にならんでいるたくさんのファイルの日時をざくっとみて、ほしいファイルをえいやっと拾い出す。この時、ファイルの修正日時が撮影した日時であること、が必要になる。

面倒なことにJPEGやMOVファイルなどには4種類の日付と時刻が記録されている。厳密にはもっと多くて複雑だけどとりあえずここではファイルの修正日時(mtime)とExifの撮影日時が別々に記録されていることだけ覚えておいてほしい。

修正日時はmacOSでフォルダを開いてファイルを右クリックした時に「情報を見る」を選ぶと表示される「変更日」のこと。
Exif日時は写真ファイルをプレビューなどで開いて「インスペクタを表示」して「Exif」タブを選んだ時に表示される「オリジナルの日時」のこと。

普通はこれらの日時をあえて変更する人はいないのだけれど、じつはどちらもコマンドやツールを使って簡単に修正することができる。たまに裁判などで証拠となったファイルの日時の修正の有無が話題になることがあるし。裁判官の中にもこのあたりの事情に詳しい天才的な人がいるのはじつに心強いし痛快だ。

ロシアがウクライナに侵攻するときの口実として「ウクライナ側が先に攻撃を仕掛けてきたから」と主張するための証拠の動画ファイルのExif日付が実際の開戦日ではなくプーチンがもともと開戦準備の秘密指令を出していた(と西側の情報機関が警告していた)2月16日のままだった、というおまぬけな状況もあったね、そういえば。どんなに天才的な独裁者が秘密裏に周到に準備した電撃作戦を開始しようとしても、オリンピック開催期間を避けて閉会式後に開戦日を変更することにする、なんて気まぐれをその場の思いつきでやられた日には、苦労して偽旗作戦のためにExif日時の整合性を完璧に準備しておいたはずの末端の工作員はとんだおまぬけに見えるよね。真珠湾の宣戦布告文書翻訳遅れどころの騒ぎじゃない。

閑話休題

こうやって集めておいた2000枚近くの写真を帰国後にAmazon Photoにアップロードしてスライドショーで眺めようという魂胆。知人たちから送られてきた写真もあわせてアップロードする。ここでExifの時間のずれを修正する必要が出てくる。

ExifというのはExchangeable image file formatの略で、富士フィルムが開発し日本電子工業振興協会(JEIDA)が90年代後半に制定したといわれる画像メタデータのフォーマットのことだ。シャッター速度や絞り、ISO感度、焦点距離などが記録されているので、写真を趣味とする人にとってはとても便利で貴重なデータが保存されている。

Twitterが普及し始めた頃、写真を添付すると撮影地点のGPS座標がモロに記録されていたのでストーカーに悪用される危険やテロリストのアジトをテロリスト本人が暴露してしまうような事例があった気がする。現在はアプリの側でアップロードの際にExifを消すのでこの危険はとりあえず回避されるようになった。

iPhoneやMacの写真アルバム、Amazon PhotoなどではこのExif日時の順に写真が並びスライドショーが再生される。ここで問題になるのが、Exifの撮影日時にはタイムゾーンの概念がなく、それぞれのカメラメーカーが解釈した流儀にそって現地時間が記録される、という点だ。メーカーや機種によって挙動が異なるのがやっかいだ。最初に提案したやつ、ちょっとそこへ座れ。

iPhoneの場合、ファイル修正日時は世界時(UTC)で記録されるので、現地で見るときは現地時間、帰国して見れば日本時間で表示されるが、内部では世界時で記録されている。しかしExif日時はその写真を撮った時のローカル時刻が記録される。現地のローカル時刻に切り替わるタイミングは飛行機が着陸して航空機モードを解除し、現地のローミングキャリアの電波を拾った瞬間。つまりアメリカについて航空機モードをオフにすると、その先に撮った写真はExif日時だけが過去に戻る。

GPSの時刻と同期するSONYコンデジの場合、現地に到着してGPSの電波をひろってしばらくすると内部の時計が突然現地時刻に切り替わる。ただしメニューで夏時間の設定をしておかないと冬時間のままとなる。


 今回の場合、現地で電源を入れて数枚は日本時間で記録されていて、途中からGPSを受信して米東部標準時、つまり14時間過去に遡った。米東部夏時間ではなく。

CanonはGPSがないので日本時間のままで今回の旅行を終えた。

Exifの時間のずれがわかっているばあいには一括で変換できるexiftoolという便利なツールがある。たとえば米東部夏時間で記録されたJPEGを一括で日本時間に変換するには

exiftool -alldates+=13 *.jpg

あるいはAmazon Photoからダウンロードしたファイルの修正日時をExif日時に戻してやるには

exiftool -FileModifyDate<DateTimeOriginal *.jpg

とすればよい。exiftoolのインストールの方法については適宜ぐぐってください。

Exifに記録される日時がこうもバラバラになってしまうのは、富士フィルムが最初に規格を作った時にタイムゾーンの存在もしくは必要性を認めなかったからだ。国内市場を見据えて商品開発するのはいいが、システム内部の時刻といういちばん基本的な部分で世界時を意識しないで設計を始めてしまうと、いざ海外展開の時に身動きがつかなくなる。

昔、シャープが電子手帳ザウルスを発売した時に粋がって海外出張の時などに持ち歩いていたことがある。コンセプト的にもサイズ的にももっとしっかりと未来を見据えて開発していれば海外市場を席巻できたかもしれない製品だった。ところがタイムゾーンを設定できずに時計を現地時刻にあわせてみると、予定表に入れた時刻がずれてあとでえらい目に遭ったのを覚えている。そーゆーとこだぞ日本企業。社員の勤怠管理には秒単位まで熱心になるくせに、なぜ世界がそれぞれのタイムゾーンで動いているという認識なしに基本設計を始めてしまうのだ。ヤード・ポンド法を各国に押し付けてくるあのNASAでさえ、宇宙ステーションの時間は世界時なのに。

Exifは日本企業と世界市場のあいだに横たわる深くて暗い川の象徴かもしれない。日本時間という単一のタイムゾーンにぬくぬくと守られてきて世界時を採用することの重要性に気がつかない。日本はいつになったらDX対応になるんでしょうか河野さん。

てか、ヤード・ポンド法、滅ぶべし。

前の記事 | 最初から読む | 次の記事


Return to Base

オーランド空港(MCO) を飛び立った飛行機は南向きに離陸して左に旋回するとワシントン・ダレス空港(IAD)に向かった。 窓際の席に座れた時には離着陸の動画を撮ったり上空からなにか面白そうな建物や地形を見つけると写真に撮ったりする癖があるので今回も撮りはじめた。日本だったらあまり...