「Google+」から分離・独立して単独サービスとして利用出来るようになった「Googleフォト」。16M(1600万画素)までの静止画や1080p(フルHD)までの動画であれば実質的に容量無制限で保存可能という太っ腹な仕様で注目を集めています。
スマートフォンで撮影したデータを自動同期出来るのは勿論、ローカルに保持している写真や動画もドラッグ&ドロップで簡単に追加可能。保存されたデータはGoogleフォトの画面上で時系列に沿って閲覧出来るほか、自動で付与されるタグや複数のファイルを束ねたアルバムとして管理することも出来ます。
容量無制限に利用したいという場合は設定で「高画質」を選び画像や動画が自動圧縮されることを許可する必要がありますが、スクリーンで見る限り画質の劣化はほとんど気になりませんのでスマホやコンデジの撮影データのバックアップ先としては何の問題もないレベル。本格的に写真を趣味や生業としている人にとっても大量の作品の中から目的の1枚を見つけ出すためのインデックスとして用いれば大変便利。Googleの新たなキラーコンテンツと呼ぶに相応しい素晴らしいサービスです。
ここではGoogleフォトを活用していくうえで知っておくと便利な小ネタを備忘録がてら残しておくことにします。(Google側での仕様変更により変わる可能性があります。)
動画(MP4や3GP)の撮影日時を正しく反映するには
Googleフォトに画像・動画をアップロードするとEXIF情報を有するJPEGファイル等はその中の撮影日、それ以外のデータはファイルの更新日時(タイムスタンプ)に従ってタイムライン表示されるのが基本的な仕様。
このため編集や移動・コピーを行うなどして更新日時が変わってしまったファイルも、フリーソフトなどを用いてタイムスタンプを変更してアップロードし直せば本来あるべき日時に表示されるようになります。
ただし、MP4やそのサブセット(3GP等)の動画ファイルに関してはもうひと手間が必要。MP4ファイルの中にはメタデータとして「creation_time」なる項目を有するものが多く、Googleフォトはここにセットされた日時を優先する模様。ただ、この項目は一般的に「エンコード日」がセットされるため、ビデオで撮影した動画を自分で編集した後に書き出したMP4ファイルをそのままアップロードするとタイムライン上「撮影日」ではなく「編集日」で表示されるケースがあるかと思います。
このような場合はffmpegを利用してcreation_timeを操作しておけばOK。
# 1. creation_time の確認
ffmpeg -i (ファイル名)
# 2-1. creation_time を任意の日時に変更
ffmpeg -i (ファイル名) -metadata creation_time=2015-01-10T12:23:45 -vcodec copy -acodec copy (出力ファイル名)
# 2-2. creation_time を削除
ffmpeg -i (ファイル名) -metadata creation_time= -vcodec copy -acodec copy (出力ファイル名)
任意の日時に変更する際はISO 8601形式で「YYYY-MM-DDTHH:MM:SS[Z]」などと指定します。
ただし問題が一点。MP4等の動画ファイルに設定すべきcreation_timeは本来UTC…つまり日本時間から-9時間した値をセットするのがの正しい仕様のようなのですが、動画ファイルに設定されたその値をGoogleフォトはローカル日時として処理してしまうためタイムライン表示が若干おかしくなってしまいます。(Android端末から自動同期された動画は問題ないが、PC等からアップロードするとUTCのまま処理されてしまう。現在Googleが修正中らしい。)
「そんなの困るーっ」という場合にはcreation_timeを削除してしまうのも一案。creation_timeの設定がなければファイルの更新日時が撮影日時として処理されるので管理は楽かもしれません。
動画の縦横の向きを変更
フィーチャーフォンやスマートフォンで縦向きに撮影した動画をPCで見ると90度回転した状態で再生されてしまうケースがあろうかと思います。
このファイルをそのままGoogleフォトにアップロードしても以後首を傾けて視聴し続けなければならないのでなんとかローカル上で正しい状態に戻してあげたいところですが、動画編集ツールを使っても大半は横長の画面しか想定していないので左右両端に大きな黒帯がついたり上下が見切れたりしてしまいます。
そこで活躍するのが先ほども登場したffmpeg。
ffmpeg -i (ファイル名) -vf transpose=1 -metadata:s:v:0 rotate=0 (出力ファイル名)
動画の種類や形式によってはうまくいかないケースもありますが、大半はこれで意図した状態になるはず。