こん○○は、よふかしわーくすのよふかしさんです
よふかしさんはAviUtlのプラグインであるVSD for GPSを動画編集で使うことがあります
JavaScriptのスキンを編集して自由にデザインして合成できるのも面白いですね
ドライブレコーダーの動画ファイルからGPSデータを抜き出して動画編集する(2) 作製編
でも書いたのですが、
X(旧Twitter)では2017年時点で開発終了?
ということでGitHubにてソースコードが公開されました
という訳で、ありがたくコードをげっとんしつつ
自身でもビルドできる様に環境を構築しようとしたところ
結構つまづくポイントが多かったので、成功事例を記録しておきます
公式では下記の様に記載されているので、この流れに沿ってやっていきたいと思います

開発環境の構築と初期設定
ソースコードの取得やビルドに必要なツールを順にインストール、セッティングしていきます
Gitを使用してソースコードを取得する
GitHubのVSD for GPSのページにアクセス
緑のCodeをクリックするとDownload ZIP、というメニューが出てくるので、そこからDLできますが
このやり方だと、後々不足ファイルがたくさん出てきて苦労します…

なので、Git for Windowsを使用してcloneします
Git for windowsは下記からDLします
今回は、64-bit Git for Windows Setup、をDLします
インストールしたら、下記コマンドでソースコードを取得します
今回はC:\tempに展開して進めます
cd /d C:\temp
git clone --recursive https://github.com/yoshinrt/vsd
こんな感じ

Microsoft Visual Studio Community 2022のインストール
公式ではMicrosoft Visual Studio Community 2019を入れよ、とのことですが
2025年3月現在ではDLページが見つからなかったので
Microsoft Visual Studio Community 2022を入れていきます
下記にアクセスしてダウンロードをクリックします


DLされた、VisualStudioSetup.exe、を起動して進めていきます
VSD for GPSはC++なので、C++によるデスクトップ開発
にチェックを入れてインストールします

Cygwinのインストール
コンパイルのためにCygwinが必要とのことで、下記ページからDLします
setup-x86_64.exeをDLします
DLした、setup-x86_64.exe、を実行します
次へ

次へ

次へ

必要に応じてフォルダを変更して次へ

次へ

どれかを選択して次へ

インストールするPackageを選択します
公式では、
cygwin (make, bash, perl, git, zip, tar, bzip2, etc…)
が必要っぽく書かれているので、一応それらは入れていきたいと思います
(etc…が気になりますが、結論としては上記が入っていればエラーは発生しません)
View、のプルダウンメニューで、Full、を選択
Searchのところに上記パッケージ名をそれぞれ入力、インストールするバージョンを選択していきます
例えば、make、の場合
Searchして出てきた画面を下にスクロール
makeを見つけて、Newの部分を、Skip→4.4.1-2(最新)に変更します
この作業を、各パッケージに対して実施していき、完了したら次へ
(ちなみに、make、perl、git、zipは、デフォルトではSkipになっていました)

次へ

単体で使用することはないので、このチェックはOFFしても問題ないです

Google V8 ライブラリのインストール
公式ページに記載のリンクを叩くと404になってしまいます…

リンクを見ると、こうなってます
https://github.com/yoshinrt/vsd/releases/download/release_r986/v8_lib_ReleaseMT.tbz
r986でビルドされているパッケージが添付されているっぽいですが、直リンクでアクセスできません…
ということでリリースページに行きます
r986 リリースのところまでスクロールします

下の、Assets、をクリックするとDLできるファイルが現れるので
v8_lib_ReleaseMT.tbz、をDLします

tgzはwindows標準ツールでは展開できないので、7-zip等を使用して展開します
展開すると、v8_lib_ReleaseMT.tar、というファイルが出てくるのでこれも展開します
そうすると、include、ReleaseMTというフォルダが作成されるので
C:\temp\vsd\vsd_filter\v8_lib
にコピーします
こんな感じ

V8ライブラリはソースコードが開示されているので自身でコンパイルしてもいいのですが
結構設定も大変だし時間も掛かるしなので
ライブラリとして使いたいだけといった今回のような場合は
ありがたくビルド済みのものをげっとんしてくるのが吉です
いよいよビルドしていく
Visual Studio 2022を開いて、プロジェクトやソリューションを開く、を選択

C:\temp\vsd\vsd_filter、にある、vsd_filter.slnを選択

VS2019→VS2022になるので、アップグレードを求められますが、OK

開くと、なんかたくさんごちゃぁとした画面が出てきます…

新規機能のウィンドウを閉じる
表示→ソリューションエクスプローラを表示
Debug→ReleaseMT、に変更

Ctrl+Shift+B(ソリューションのビルド)を実行します
次はこんな感じのエラーが発生します

ScriptIF.h、rev_num.hはストレージ内を探しても見つからないです
これは公式でも記述があるんですが、Cygwinが正しく動作していないというのが理由です
ビルド時に ScriptIF.h, rev_num.h がないと怒られるときは,cygwin の実行に失敗しています.こちらからダウンロードできます.
上記の通りに書かれてはいるのですが
こちら、となっている、AppVeyorさんにアクセスするとDLファイルがなく??になると思います…

Historyを辿っていくと、Cygwinに言及した部分は確認できます

な ん で す が
AppVeyorさんから1か月で消してんす、って表示されてDLできません…

なので、自身の環境でちゃんとCygwinさんで作られるようにするのが最善です
どうやればいいのかなぁと調べた結果、わかりました
Cygwinが環境変数にパス登録されていないのが原因でした
という訳で
C:\cygwin64\bin
を環境変数に登録して、PCを再起動します

でもまだエラーが発生します
VS2019→VS2022化の設定が不足しています
というか、初回起動時に変更した設定を保存せずに閉じてしまった様です…

ソリューションエクスプローラーで、ソリューション’vsd_filter’、を右クリック
ソリューションの再ターゲット、を選択

OK

これでビルドを実行すると…

正常に完了しました!!!!1
AviUtlで読み込めるauf拡張子に変更
現状の設定でビルドすると
vsd_filter\ReleaseMT\vsd_filter.dll
vsd_filter_avs\ReleaseMT\vsd_filter_avs.dll
が生成されますが、AviUtlでは、.aufという拡張子で読み込みされます
具体的には、vsd_filter.dll→vsd_filter_gps.auf
と変更しないといけないです
Visual Studioでこのファイル名・拡張子で、自動生成されるように設定を変更してみます
但し、この後に解説する、release.batを実行してインストーラを作成する場合、
この作業をすると怒られるので注意してください
両方の運用をしたい場合は、
ビルド後に自作のバッチ等を自動で叩いてコピー&リネームするのがよさそうです
ソリューションエクスプローラーで、vsd_filterを右クリック、プロパティ
構成プロパティ→全般→ターゲット名、vsd_filter_gps、に変更

構成プロパティ→詳細→詳細プロパティ→ターゲットファイルの拡張子、.auf、に変更

これで完了です
生成された、vsd_filter_gps.auf、vsd_filter_avs.dllを
AviUtlのexeのあるパスにブチ込めばOKです
インストーラの作成
release.batを実行してインストーラを作成してみます
cd /d c:\temp\vsd\vsd_filter
release.bat
すると、パスが見つからないと怒られます
今回はVisual Studio 2022を使っているのでパス変更が必要です

release.batをエディタで開いて編集します
ついでに、cygwinのパスも今回は64bitを入れて異なっているので修正します
rem call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"
call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat"
rem set path=c:\cygwin\bin;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\ProgramData\chocolatey\lib\zip\tools;%PATH%
set path=c:\cygwin64\bin;C:\strawberry\c\bin;C:\strawberry\perl\site\bin;C:\strawberry\perl\bin;C:\ProgramData\chocolatey\lib\zip\tools;%PATH%
rem if not exist c:\cygwin exit /b 0
if not exist c:\cygwin64 exit /b 0
次はlibがないって怒られます

これをどううまく解決するのがいいのかなぁと悩んだのですが…
projファイルのリンカでパスを変更することで対応しました
ソリューションエクスプローラーの、vsd_filter、を右クリック→プロパティ
構成プロパティ→リンカー→入力→追加の依存ファイル、
ここの色々書いてあるところを一旦クリックするとプルダウンメニューが出てくるので
<編集…>、を選択

$(IntDir)、を、ReleaseMT、に書き換えます
zlibの部分だけでなく、v8_libの部分も同様に書き換えます

こんな感じ

忘れずに.vcxprojを保存します
同様にして、vsd_filter_avsのprojも変更して保存します
再度、release.batを実行します

一旦、pauseで止まるので、その際に、
C:\temp\vsd\vsd_filter\zrelease\VSD_installer.hta、が生成されれば成功です
このpauseを過ぎると、バッチファイルから消されてしまいますが、
最終的には、vsd_filter_gps_r****.exe、といったファイルに同梱されます
デバッグ等で.htaが必要な場合は手動で取り出すか、コード変更してファイルを移動するなりを実施しましょう

終わりに
開発終了と宣言があってオープンソースとなった、VSD for GPSのビルド手順を解説しました
もし何かの拍子に変更したいとなったときは、この開発環境を活用できるかと思います
GitHubを見ると最近でも細々と(?)更新されている様なので、今後の開発にも期待したいところです
C++はあまりなじみがないのと、なかなか高度なツールだと思うので
中身をのぞいてお勉強してみたいなと思います。。。
公開日時:2025/03/16 19:10:02
追記
その後の経過に関して、こちらで書いています
コメント