Garmin VIRB Edit (Windows版) スクリプトエラー回避策【2023年8月以降対応】


はじめに

VIRB Editとは

自転車の車載動画に様々な情報を付加できるソフトウェアである、Garmin VIRB Edit。

こんな感じ

無償で公開・提供されてはいるものの、既に開発とサポートは終了しており、新たに発生した不具合等はユーザが自己解決する必要があります。
残されたユーザーはフォーラムで情報共有をしています。

スクリプトエラー

2022年5月頃に発生したスクリプトエラー(ここでは割愛)については、レジストリの編集によって回避が可能でした。
ところが、2023年8月頃から新たなスクリプトエラーが発生し、VIRB Editの大きな特徴である動画とアクティビティの同期処理に致命的な影響が出ているのが現状です。

憎きスクリプトエラー

代替ソフトウェア

代替ソフトウェアとして筆者がすぐ思いつくものとして、DashWareTelemetry Overlayがあります。
前者は無償ソフトウェアではあるもののVIRB Edit同様にサポートが終了しているのと、古いために機能が不十分に感じられます。
一方、後者は機能は申し分ありませんが有償ソフトウェアかつお値段149ドル(執筆時点のレートで22,000円超…)と高価です。

代替策

代替策として、一度VIRB Editで単色の動画上にレイヤを表示するだけの動画を作成し、クロマキー合成で車載動画にレイヤを統合する、という方法もあります。
ただし、エンコード処理が複数回発生することと、合成の際に縁の粗が目立つことが個人的には気になったため、後述の回避策を検討するに至っています。

回避策(2023年8月~の不具合対応)

導入

2023年8月頃から発生している不具合は、具体的に言うとVIRB Edit上で動画とアクティビティが行われた地図上のポイントを同期する処理が機能しないというものです。
以前は地図上のポイントにマーカーが表示され、マーカーを動かすことで直感的に動画と地図を同期させる作業が行えていましたが、このマーカーを表示させる機能が使えなくなってしまったのが、今回の不具合です。
地図と動画の下にあるスライダーを動かして試行錯誤する必要がありますが、大雑把にしか動かせないため時間をかけてようやく合わせても、数秒のズレが出てしまうというのが悩みどころでした。

同期画面(マーカーくん帰ってきて…)

これはVIRB Editが利用するGoogle Maps JavaScript APIのスクリプト(marker.js、control.js)のエラーに依るもののようです。
ただし、今日時点でもMac版のVIRB Editは変わらず利用できているらしいことから、Windows版を使わずにMac版を利用すれば解決します。Google側の問題というよりはWindows側の問題(月次のセキュリティ更新プログラムの影響?)なのかもしれません。詳細は分かる人いたら教えてください。
前回のスクリプトエラーはInternet Explorer関連の不具合であったため、ピンポイントでレジストリの設定を変更することで対処できたのが、今回は同じ手が通用しないため四苦八苦しているわけですね。

というわけで、ここからはWindows版での回避策を述べていきます。
結論から言うと、VIRB Editの構成ファイルを直接編集することで対応する若干泥臭い作業になります。
とはいえ、慣れれば元々のGUI上で地図を見ながら合わせるより早く同期ができるかもしれません。

準備

作業にあたり準備するものを記載します。

  • Garmin VIRB Edit

  • 車載動画

  • アクティビティファイル(.gpx、.fit)

  • GPXSee

  • テキストエディタ(メモ帳で可)

上3つは元々VIRB Editを使っている方であれば問題ないと思います。

4つ目、GPXSeeはアクティビティファイルを閲覧するためのソフトウェアになります。
英語表記のため抵抗ある方もいるかもしれませんが、そこまで使いこなす必要もないので大丈夫かと思います。あとオープンソースなので安心。ダウンロードはこちらから。

StravaのFlybyで走行時間と場所を確認する方法を提案されている方もいるようなのですが、デスクトップアプリケーションの方が好みのため、今回探してきました。

手順1:車載動画を撮る

まずはここから。走って動画を撮りましょう。
VIRB Editはmp4フォーマットのみ対応しているため、その他のフォーマットの場合はエンコードしておく必要があります(ここでは割愛)。

手順2:アクティビティファイルの入手

ここではPCでStravaからファイルをダウンロードする想定で記載します。
車載動画に対応するアクティビティのページに移動し、「・・・」のボタンから「オリジナルをエクスポート」で.fitファイルをダウンロードできます。
「GPXをエクスポート」でも.gpxファイルはダウンロードできるのですが、パワーメーターの値などが欠落してしまうため、ここでは.fitファイルをダウンロードします。

Stravaからファイルをダウンロード

手順3:動画と地図の同期ポイント確認

はい、一番面倒で地味な作業です。誰かやっておいてほしい
その前に、GPXSeeのインストールがまだなら実施しておきましょう。
インストールしたら.gpxや.fit、.tcxなどの拡張子は自動的に関連付けがされてダブルクリックで開けるようになるはずです。

関連付けされた状態

手順2でダウンロードした.fitファイルをダブルクリックで開きましょう。
GPXSeeでアクティビティが表示されるはずです。

浜名湖(だいたい)一周

と、ここで個人的におすすめの設定を掲載しておきますので参考にしてください。
基本的にはこのソフトウェアを使って地図を見ながら走行時間が分かればOKです。
ここで、Time zoneの表記設定は後々のことを考えて「UTC」にしておくと良いです。※日本の時間-9hがUTCになります。

設定1
設定2(Settings - Options)

GPXSeeが設定できたら同期作業に入りましょう。
元々のVIRB Editでやっていたのと同じ要領で、動画を再生しながら同じポイントをGPXSee上の地図で探します。
このとき、GPXSeeの地図と下部のグラフはマウスのホイールスクロールで自由に拡大・縮小ができますので、細かな調整が可能です。
今回の場合、GPXSeeのグラフ上の表記から動画の12分29秒のポイントは、アクティビティを開始してから2時間0分52秒が経過した地点になるようです。
この時間の組み合わせを動画ファイルごとにメモしておきます。

ストリートビューも駆使

すべての動画で同期ポイントが確認できたら、アクティビティの開始時間もメモしておきます。
GPXSeeの青線で示される地図上のルートをクリックすると、吹き出しで以下の情報が出てきます。Dateの日時がアクティビティ開始時間です。

Dateの日時がアクティビティ開始時間

手順4:VIRB Editへの動画取り込み

細かい手順は分かる前提で省きますが、VIRB Editのメディアライブラリに動画を放り込み、「ビデオに追加」します。
複数の動画がある場合は一通り追加しておきます。

動画が追加された

追加されたら、、VIRB Editを終了します。

手順5:構成ファイルの編集

エクスプローラーのアドレスバーに以下を入力して移動します。
%AppData%\Garmin\VIRB Edit\Database\7\RawMovies

※%AppData%は環境変数です。コピペすればそのままアクセスできますが、C:\Users\ユーザ名\AppData\Roamingで読み替えてください。

ここには、過去にVIRB Editに取り込んだファイルの情報がデータベース(実態は.xml)として格納されています。
各ファイルの情報は、GUIDというランダムな文字列で命名されたフォルダに格納されているため、一見すると見つけるのが難しいはずです。
とはいえ、ついさっき取り込んだファイルなので、更新時間等でソートして頑張って見つけてください。

中身はサムネイル画像とxmlファイル

続けて.xmlファイルを編集する必要があるため、video.xmlを右クリックし「プログラムから開く」でテキストエディタ(メモ帳で可)を選択して開いてください。
無事開けたら、ファイル中の<FilePath>◯◯</FilePath>で記載された◯◯が、今回編集対象にしている動画ファイル、格納先ファイルパスと同じことを確認しましょう。
もうお気づきの通り、動画ファイルの数だけ、これから行う作業は必要になります。慣れたら大したことはありません(たぶん)。

何やら色々情報が

video.xmlには動画ファイルに関する情報が記載されていますが、今回必要なのは画像中の赤枠で囲っている3箇所(CreateDate、TelemetryTime×2)だけです。
これらは全て日時指定のためのパラメータとなっており、YYYY-MM-DDThh:mm:ssZで表されるフォーマットに従ってタイムゾーンはUTCで記載する必要があります。
今回は、これら3つ全ての日時を動画開始日時に修正すればOKです。

手順3でメモした情報を振り返ってみましょう。

  • 動画再生時間:0時間12分29秒

  • アクティビティ経過時間:2時間0分52秒

  • アクティビティ開始時間:2023年9月2日 21時42分36秒 (UTC)

これらの情報から、この動画が開始した日時が分かれば良いわけです。
まずは、アクティビティ経過時間の日時を計算します。

便利ですね

続いて、アクティビティが経過した時間から動画再生時間を差し引きます。

便利d(ry

これで、動画が開始した時点のUTC日時が 2023/9/2 23:30:59 とわかりました。
これをフォーマットに合わせると、2023-09-02T23:30:59Zとなります。
3箇所の日時を上記で上書きし、ファイルを保存します。

編集します

動画が複数ある場合は、これらの作業を同じように繰り返し実施してください。
ちなみに筆者はGoProを使っていますが、普段の設定だと35分14秒ごとに動画が細切れになります。この場合、連続した次の動画の開始時間は単純に35分14秒を足した値にすればOK(2023-09-03T00:06:13Z)です。

手順6:同期確認

ここまでくれば終わったも同然です。
VIRB Editを開き、いつも通りG-Metrixでアクティビティファイルをインポートしましょう。
この際、エラーが出るのは仕方がないので、出るたび[はい]を押して無視します。

表示するレイヤーの設定をして、動画の状態を確認しましょう。

・・・?
日時(JST)が反映されている!

・・・お疲れ様でした。同期完了です!

次の動画などはインポートする際に以下のようにマッチする旨の表記が出るはずです。
また、動画自体に日時情報を持たせてある場合も同様に出ると思います。
※フォーラムには、動画に情報を付与する方法で回避する方もいたのですが、その処理に多大な時間を割くよりは構成ファイルを編集するのが手っ取り早いと思います。

一致させたからね

あとはいつも通りエクスポート、アップロードして、これまでと変わらぬ良き車載動画ライフをお送りください。

本記事は全文無料で読めますが、半休使ってこしらえたのでお気持ちいただけると幸いです。↓↓

手順5でvideo.xmlを編集しても反映されない場合(2023/11/09追記)

VIRB Editに対して同じ動画ファイルを複数回読み込ませた場合、フォルダ(GUID)は都度再生成される仕組みのようです。
つまり、 video.xml の指し示す動画ファイルパスが正しいように見えても、作成中の動画プロジェクトと紐づく設定ファイルでは無い可能性があります。
この場合の対処としては、以下の2つの方法が考えられます。

  1. %AppData%\Garmin\VIRB Edit\Database\7\RawMovies 配下のフォルダを一度すべて削除し、再度動画を読み込ませ直す

  2. プロジェクト設定ファイルを参照して紐づく動画(GUID)を特定する
    ⅰ. %AppData%\Garmin\VIRB Edit\Database\7\MovieProjects 配下から作成中の動画プロジェクトを見つける(edited_movie.xml の <Name>タグ参照)
    ⅱ. edited_movie.xml の <RawMovieId>タグに記載のGUIDのフォルダ名を持つフォルダを %AppData%\Garmin\VIRB Edit\Database\7\RawMovies 配下から探す
    ⅲ. video.xml の内容を書き換える

ここから先は

1字

¥ 300

この記事が気に入ったらサポートをしてみませんか?