2014年9月19日(金)SONY PlayMemories Home 「マルチビュー作成」での GPS の扱い

  • どうやってるのか調べてみた。

  • (2014年9月19日(金) 午後8時41分52秒 更新)
  • このエントリーをはてなブックマークに追加
    BuzzurlにブックマークBuzzurlにブックマーク
GPS情報を合成できるのが魅力の一つ

GPS情報を合成できるのがHDR-AS100Vの魅力の一つ。

意外と単純なGPSとの連携

HDR-AS100V では、GPS ログは、動画とは別のフォルダに、NMEA 0183フォーマットで保存されていて、拡張子は「LOG」となっている。このファイルは、PlayMemories Home で動画を読み込んだとき、動画と同じく日付別フォルダに整理されて、動画と同じフォルダに読み込まれる。

PlayMemories Home には、「ビデオの結合」というツールがあり、これで撮影した動画を結合できるのだけれど、撮影した動画といっしょに GPS ログも結合できるのは、連続して撮影された動画のみとなっている。要するに、ファイルフォーマットの都合で、カメラが勝手に分割保存した動画のみ、GPS ログを含めて結合できる、ということだ。

つまり、バッテリーを交換しようとして、ユーザーが撮影を停止させた後再開した場合、再開後のファイルは GPS ログを含めた形では、撮影停止前のファイルと結合することができない。

このことから、「マルチビュー作成」が GPS 情報を合成するとき何をやってるのかがわかる。「マルチビュー作成」は、動画ファイルの作成時と GPS の時刻情報を照らし合わせて、動画撮影開始から何秒後にこの座標、というのを、GPS ログから順を追って割り出しているようだ。

そのため、仮に GPS ログを結合してしまうと、動画ファイルの結合位置以降、撮影停止時間の分、動画内の時刻が GPS ログの時刻とずれてしまい、動画内時刻と GPS の対応が崩れてしまう。それで結合できない、というわけなんだろう。

(でも、何分何秒後に動画ファイルが結合されていて、そこで時刻が何分何秒ずれる、という情報を記録しておけば、GPS 情報を合成することは可能だと思うんだけど。。。)

ただこの方法なら、撮影開始時間さえわかっていれば、どんな形式の GPS ログとも合成できるはずで、カメラ本体の GPS を使わず(携帯電波で位置情報を補正できる)スマホのアプリで GPS を記録したり、別の GPS ロガーで作成した任意の gpx ファイルなどを読み込んで、動画に GPS 情報を合成することもできそうだ。ぜひそんな外部GPS読み込み機能を追加してほしい。iMovie などでも GPS 情報の合成に対応してくれればいいな。

HDR-AS100Vの後に出た、より小型の後継機「アクションカム・ミニ」では、本体から GPS が取り除かれ、WiFiリモコン側で GPS を記録するようになった。WiFiリモコンなしで GPS 内蔵スマホ向けに専用アプリを作って対応することも可能だと思うから、スマホをリモコン替わりにする安いバージョンもそのうち出してほしい。そしたら追加で買っちゃうかも(笑)。

撮影を手動で一時停止してファイルが分割されてしまった場合は、ビデオを結合できても GPS ログは結合できない。

撮影を手動で一時停止してファイルが分割されてしまった場合は、ビデオを結合できても GPS ログは結合できない。

GPSログを無理矢理結合する方法

バッテリー交換で一時停止しても、GPS ログが結合できないというのは、ちょっといやだ。ということで、強引に結合する方法を考えた。要は、一時停止後の GPS ログが、一時停止前のファイルの1秒後から始まるようにすれば、動画と位置情報の対応を崩さずに、GPS情報を合成できるはずだ。そのかわり時刻表示はずれる。

で、GPS ログの時刻を前のファイルの1秒後から始まるよう書き変える MacOS X 用ドロップレットを作った。以下はくれぐれも自己責任で!

GPS LOG 結合

まずはこの zip ファイルをクリックしてダウンロード。ダウンロードした zip ファイルをダブルクリックすると、ファイルが解凍されて「GPS LOG 結合」というドロップレットになる。

とりえあず、GPS ログ抜きで「ビデオの結合」を行って…。

「GPS LOG 結合」に結合したビデオに対応する LOG ファイルをまとめてドロップ。

「GPS LOG 結合」に結合したビデオに対応する LOG ファイルをまとめてドロップ。

ビデオは連番で名前がついていくのだけれど、GPS LOG ファイルは、日付(YYMMDD)ごとに連番がつくようだ。連続して撮影した動画の LOG ファイルは、(1)..(2)..(3) と連番がつく。だいたい順番通りなので、順番から類推してビデオに対応する LOG ファイルを選ぶ。

これだけでは、結合した GPS ログを認識してくれないので、動画ファイルがあるフォルダにある「.HashTable.xml」という不可視ファイルをテキストエディタで開き、下記のようにファイル情報を修正する。

	<key>MAH00046 (1).mp4</key>
<dict>
<key>DateCreated</key>
<date>2014-09-13T19:26:10Z</date>
<key>EditFunction</key>
<integer>9</integer>
<key>FileSize</key>
<integer>16785271806</integer>
<key>HashValue</key>
<string>......</string>
</dict>

GPSTrack を追記。「2304」にどういう意味があるのかは不明。

	<key>MAH00046 (1).mp4</key>
<dict>
<key>DateCreated</key>
<date>2014-09-13T19:26:10Z</date>
<key>EditFunction</key>
<integer>9</integer>
<key>FileSize</key>
<integer>16785271806</integer>
<key>GPSTrack</key>
<integer>2304</integer>

<key>HashValue</key>
<string>......</string>
</dict>

で、結合した GPS ログを認識するようになる。以上あくまでも自己責任で。質問にもお答えしかねます。

バグいろいろ

PlayMemories Home の「マルチビュー作成」にはいくつかバグがあるようだ。ひとつは GPS ログが0時をまたぐとき、0時以降のGPSログを合成できない。これはLOGファイルを開いて、0時以降の時刻を24時..25時..と修正すると正常に処理する(^^;。

もうひとつ、「ビデオの結合」または「ビデオの切り出し」を経た動画ファイルでは、GPS情報を合成したとき日本時間ではなくグリニッジ標準時間になるバグがある。これは治し方がわからなかった。とりあえず、「~/ライブラリ/Application Support/PMH Mac/PMHDatabase.sqlite」に、ファイルと作成時の対応などが記録されていることがわかったのだけれど、このデータを修正しても日本時間表示にはならないようだった。

動画ファイルとGPS LOGファイルの対応がどこに記録されているのかもよくわからないし、あとは SONY さんが修正してくれるのを待つばかり。

PMHDatabase.sqlite

PMHDatabase.sqlite の中を見ると、結合したファイルに限って、作成時間の項目にグリニッジ標準時からの時差が書かれていないことがわかる。

更新情報

Recent Entries.

RSS

Calendar.

2014年10月
1234
567891011
12131415161718
19202122232425
262728293031
2014年9月
123456
78910111213
14151617181920
21222324252627
282930
2014年8月
12
3456789
10111213141516
17181920212223
24252627282930
31
このページのトップへ