🎥

GoPro MAXで撮影した360度動画をStreet View Studioへアップロードする

2024/09/30に公開

はじめに

今回はGoPro MAXで撮影した360度動画をGoogle Street View Studioへアップロードする方法について解説します。

作業の流れ

1. GoPro Playerでリフレーム

GoPro Player.360ファイルをリフレーム(エンコード)により正距円筒図法の動画(Equirectangular Movie, 拡張子は.mov)に変換します。変換設定は以下のとおりです。

  • 解像度:5.6K
  • コーデック:HEVC
  • 画質:高
  • ワールドロック:無効化
  • 水平レベル:無効化

最後の2つは、こちらに書かれているジャイロスコープスタビライザーを無効にしますに対応する設定です。

2. ffmpegでGPS情報をバイナリデータとして抜き出し

ffmpeg.360ファイルからGPS情報が含まれているStreamを抜き出します。

まず、Streamの情報を確認します。

ffprobe PATH_TO_VIDEO

handler_nameGoPro METになっているStreamを抜き出します。今回対象としているファイルですと以下のような出力が出てきているStreamです。

Stream #0:3[0x4](eng): Data: bin_data (gpmd / 0x646D7067), 93 kb/s (default)
    Metadata:
    creation_time   : 2024-01-01T01:23:45.000000Z
    handler_name    : GoPro MET

ここで、Stream #0:3が対象のStreamです。このStreamをffmpeg-mapオプションを使って抜き出します。

ffmpeg -y -i PATH_TO_VIDEO -codec copy -map 0:3 -f rawvideo PATH_TO_BIN/BIN_NAME.bin

このようにすると、バイナリデータファイルBIN_NAME.binが生成されます。

3. gopro2gpxでGPXファイルに変換

gopro2gpxというツールを使って、バイナリデータファイルをGPXファイルに変換します。

gopro2gpx -vvv -b -s PATH_TO_BIN/BIN_NAME.bin PATH_TO_GPX/GPX_NAME

ここで-vvvはverboseモードで、vの数が多いほど詳細なログが出力されます。指定可能なのは-vから-vvvまでです。また、-bはバイナリデータファイルを読み込む引数で、-sGPSFIXが0の点を除く引数です。

またGPX_NAMEは出力されるGPXファイルの名前で、拡張子は不要です。

このコマンドを実行すると、GPX_NAME.gpxファイルとGPX_NAME.kmlファイルが生成されます。

4. .movファイルのタイムスタンプをGPXファイルに合わせる

1で生成された.movファイルのタイムスタンプは、撮影時刻ではなくリフレーム(エンコード)時刻になっています。一方.gpxファイルは撮影時刻を記録しているため、.movファイルのタイムスタンプと.gpxファイルのタイムスタンプを合わせる必要があります。

まず、.gpxファイルのタイムスタンプを確認します。色々な方法があるかと思いますが、今回はGet-Contentコマンドを使って確認します。

$XML = [XML](Get-Content PATH_TO_GPX/GPX_NAME.gpx)
$XML.gpx.trk.trkseg.trkpt.time[0]

これによって、.gpxファイルの中にある最初のtimeタグの中身が表示されます。

2024-01-01T01:23:45.000Z

ここで表示された時刻を使って、.movファイルのタイムスタンプを変更します。ここでも様々なやり方があるかと思いますが、今回はexiftoolを使って変更します。

exiftool.exe -TrackCreateDate="2024:01:01 01:23:45" -overwrite_original PATH_TO_VIDEO

これによって、.movファイルのタイムスタンプが変更されます。

5. .mov.gpxファイルをGoogle Street View Studioへアップロード

最後に、.movファイルと.gpxファイルをGoogle Street View Studioへアップロードします。アップロード後、Street Viewとして公開されるまでしばらく時間がかかります。

GitHubで編集を提案

Discussion