動画の位置情報
EZwebの動画(3p2,amc)には画像(jpeg)と同様に位置情報を含めることができます。Javaの標準機能やJMFでは、これらの情報へのアクセス手段は残念ながら提供されていません。
以下は位置情報取得処理を実装する際に調査した結果です。基本的には実際の動画ファイルを調査して得たものですので、不正確な部分や誤りが多いと思われます。あくまで参考程度にしてください。
仕様
EZwebの動画はMP4ファイルフォーマットに準拠しています。位置情報に関する部分はKDDIの拡張で、仕様などは公開されていないようです。
位置情報の場所
MP4のBOX(atom)をスキャンし、atom名が "uuid"."gpsi" のものが位置情報のBOXです。
フォーマット
仕様が公開されておらず、Web上にもほとんど情報がないため詳細な仕様は不明です。ただ、ダンプした限りはExifのGPSタグとフォーマットがほとんど同じようです。以下、概要です。
0000 - 0003 'gpsi'
0004 - 0017 不明
0018 - 001b 'gpsi'
001c - 001F 不明
0020 - 0021 エンディアン ('MM' または 'II')
0022 - 0023 タグ数
0024 - 12byteのタグ領域が「タグ数」回繰り返し
タグ領域は以下のような形式です。この部分はExifと全く同じようです。
0000 - 0001 タグ番号
0002 - 0003 タグのデータタイプ
0004 - 0007 データのサイズ
0008 - 000b データ、またはデータへのオフセット
含まれる情報
手持ちの端末(W32S)で撮影した動画には GPSVersionID, GPSLatitudeRef, GPSLatitude, GPSLongitudeRef, GPSLongitude, GPSMapDatum, GPSProcessingMethodの7つのタグが含まれていました。これは機種によって異なる可能性があります。
各タグの詳細は http://www.awaresystems.be/imaging/tiff/tifftags/privateifd/gps.html
が参考になります。
情報取得時の注意点
手持ちの端末で作成した動画はビッグエンディアン('MM')となっており、実際にリトルエンディアンになることがあるのかは不明ですが、念のためバイトオーダーを意識しておく必要があります。また、GPSLatitude及びGPSLongitudeはデータ型がRATIONAL(4byte/4byte)となっていますので注意が必要です。
サンプルプログラム
不確実な部分が多いため、実行可能なclassファイルのみを公開します。以下は使用方法です。
java Mp4Gps 動画ファイル
位置情報が含まれていれば標準出力に情報を表示します。不具合などありましたらご指摘いただけると助かります。可能であれば、機種情報やエラーとなる動画ファイルもご提供いただけますと更に助かります。
ダウンロード
- Mp4Gps.class
