Anime PT3 TS録画 Windows

PC録画環境の話【自前ビルド編】

投稿日:

今回はPC録画環境構築の為、関連ソフトを自前で64bitビルドします。
Visual Studioは2019からgitに対応しているのでびっくりするほど簡単だったりします。

ではサクサク行きます。
まずは何はともあれ、Visual Studio 2019 Communityをインストールします。

が、その前に、混乱のもとになりますのでWindowsの「登録されている拡張子の表示」「隠しファイル(フォルダ)の表示」設定を変更しておいてください。

ここから無料版であるVisual Studio 2019 Communityのオンラインインストーラー(約1.3MB)をDLします。
特に登録の必要も使用期限なども無く、インストール、アンインストールも何度でもできますので気楽にいきましょう。

起動するとまず「Visual Studio Installer」が起動してインストールする内容を選択する画面になります。

今回は左の「ワークロード」で「C++によるデスクトップ開発」、右のインストール詳細で「MSVC v140」「MSVC v141」にチェックをいれます。
たぶん約2.6GBほどをダウンロードしながらインストールが始まり、完了するとVisual Studio 2019が起動します。

まずはBonDriver_PT3-STからやってみましょう。
最初の画面で左上の「コードを複製またはチェックアウトする」を選択。

上記リンクを上の「リポジトリの場所」テキストボックスにコピペします。

下のローカルフォルダは特に弄る必要ありませんのでそのままか、お好みで適当に設定して「複製」ボタンを押すと、リポジトリURLからソースコードその他のファイルが丸っとローカルにコピーされます。

この画面ではまだVS自体には読み込まれてませんので、ソリューション(拡張子sln)を選択して読み込みます。

たぶん「ソリューション操作の再ターゲット」という画面が出たかと思います。
これはざっくり「古いVSで作られたソースだけど今のVSで読み込んでいいか?」ってことですので「OK

ボトムバーで「準備完了」、出力ウィンドウのログ最後が「完了 x,失敗 0」になってりゃ大丈夫です。

上のリストボックスで「Release」「x64」(32bit版が欲しい人は「x86」か「Win32」)を選択してください。
念のためもう一度「プロジェクト」メニューから「ソリューションの再ターゲット」を実行します。

さらに念のため「ビルド」メニューで「ソリューションのクリーン」をしてから「ソリューションのリビルド」を実行。

出力ウィンドウに流れるログでなんか言われてても、最後に完了(正常終了)していればOK。

はい、自前ビルド完了です。
実に簡単になりましたねぇ…

ソリューションエクスプローラーのアイテムでの右クリックメニューから「エクスプローラーで開く」でローカルのソリューションフォルダを開いて、Release\x64(32ビットなら Win32 or x86)にバイナリが出来ています。
バイナリの場所はそれぞれのソフトで微妙に違う場合がありますが、基本的に必要なのは拡張子exedllです(TVtestのプラグイン除く)

なお、バイナリ配布版のBonDriver_PT3-STは「Microsoft Visual C++ 2015再頒布可能パッケージ」のインストールが必要でしたが、今回ビルドした実行ファイルは手順中の「再ターゲット」により「Microsoft Visual C++ 2019再頒布可能パッケージ」のインストールが必要になっています。
Visual Studio 2019 Communityをインストールした環境であれば改めてインストールする必要はありませんが、別の環境で使う場合には注意してください。
各VS用の再頒布可能パッケージは「最新のサポートされる Visual C++ のダウンロード」ページからDLできます。
もちろん他のソフトも自前でビルドすると同様になります。

混乱すると作者さんにもご迷惑なので、後述する修正・改造なども含めて、自前ビルドを放出する場合はきっちりドキュメントファイル等で追記・注記するのがマナーです。
(元々再配布禁止の場合はもちろん放出自体が御法度、論外です)
いずれ埋もれて消えるのが前提みたいなアップローダー等では割と緩い雰囲気だったりしますが、その分何が仕込まれてるか判ったものではありませんし使う側の自己責任ですね。

自前ビルド方法のお約束な手順おさらい。
・「ソリューション操作の再ターゲット」が出て来たら「OK」ボタンを押し、準備完了になるまで大人しく待つ。
・上で「Release」「x64」(32bit版が欲しい人は「x86」か「Win32」)を選択。
・念のためもう一度「プロジェクト」から「ソリューションの再ターゲット」を実行。
・さらに念のため「ビルド」から「ソリューションのクリーン」をして「ソリューションのリビルド
・ログでなんか言われても完了(正常終了)していればOK。

ということで、以下に今回私が使用した各ソフトとそのソース入手先リンクを列挙します。
特に追記が無いものは上記手順でビルドできました。

BonDriver_PT3-ST

BonDriverProxyEX
何故か「再ターゲット」が出ませんが右のソリューションエクスプローラーで(ソリューションではなく)プロジェクトの右クリックから「プロパティ」の「プラットホームツールセット」を最新のものに変更するとビルドできました。
32ビット版をビルドする場合にはBonDriverProxyEx/BonDriverProxyEx.cppの1031行あたりと2027行あたりの2か所にある、


#ifdef _WIN64
	::inet_ntop(AF_INET, &(si4.sin_addr), addr, sizeof(addr));
#else
	::lstrcpyA(addr, ::inet_ntoa(si4.sin_addr));
#endif

を下記のようにコメントアウトします。


//#ifdef _WIN64
	::inet_ntop(AF_INET, &(si4.sin_addr), addr, sizeof(addr));
//#else
//	::lstrcpyA(addr, ::inet_ntoa(si4.sin_addr));
//#endif

内容は昔のOS毎のお作法的なものの名残なので気にしなくてOK、このままx64をビルドしても問題ありません。
なお後述のB25デコードパッチでも同じ内容があります(パッチに失敗しますが)

B25デコードパッチ版のビルド
パッチファイルWindows用のパッチソフトをダウンロード。
ソリューションのフォルダに「b25_patch_for_bdpex_1.1.6.4.txt」と取り出した「patch.exe」をコピー。
上部アドレス表示部分をクリック→cmd+エンターで出したコマンドプロンプト画面で下記を実行します。


patch -p0< b25_patch_for_bdpex_1.1.6.4.txt

こんな感じのログが出てればOK(上の修正をせずにいきなりパッチ当てた場合のログです)


patching file BonDriverProxyEx/BonDriverProxyEx.cpp
Hunk #3 succeeded at 947 (offset 16 lines).
Hunk #4 succeeded at 1350 (offset 108 lines).
Hunk #5 FAILED at 2034.
1 out of 5 hunks FAILED -- saving rejects to file BonDriverProxyEx/BonDriverProxyEx.cpp.rej
patching file BonDriverProxyEx/BonDriverProxyEx.h
Hunk #2 succeeded at 61 (offset 1 line).
patching file BonDriverProxyEx/BonDriverProxyEx.vcxproj
patching file BonDriverProxyEx/BonDriverProxyEx.vcxproj.filters
patch unexpectedly ends in middle of line
Hunk #2 succeeded at 63 with fuzz 1.

一か所失敗して.rejファイルが出来ていますが、上の修正部分なのでx64ビルドなら無視して大丈夫です。
ソースが1.1.6.6、パッチが1.1.6.4用なので解釈できない差異があった模様。


Assertion fafiled: hunk, file ../patch-2.5.9-src/patch.c, line 354

といったエラーが出るときはパッチファイルの改行コードが「LF」のみだったりするかもしれません。
Windowsの標準である「LF+CR」に変換できるエディタ等でチェックしてください。

EDCB
ソリューションファイルがたくさんありますが、Document\EDCB_ALL.VS2015.sln を開くと一括で読み込まれます。

TVTest
ソリューションファイルがたくさんありますが、TVTest-master\src\TVTest_All.VS2013.slnを開くと一括で読み込まれます。
ビルドの前にファイル追加修正の2つの手順が必要です。

追加するファイルは「Microsoft Windows SDK for Windows 7 and .NET Framework 4」に含まれるソースの一部、baseclassesです。
私が抽出したものがこちら
自分で抽出する場合はこちらからGRMSDK_EN_DVD.isoをDLし、7zip等で\src\WinSDKSamplesフォルダを適当なところに解凍して、そのフォルダでコマンドプロンプトを開き下記を実行。


start /wait msiexec /a WinSDKSamples_x86.msi targetdir="<ここは必ずフルパス指定で適当なとこに>" /qn

もしくは焼くかマウントして、インストールします。
必要なファイルは展開(もしくはインストール)したフォルダの「Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses」フォルダの*.cpp*.hです。
いずれかのbaseclassesTVTest-master/src/BaseClassesフォルダにコピーしてファイル追加は完了です。

修正はTVTest-master\src\DirectShowFilter\EVRCustomPresenter\EVRPresenterBase.hの18行目辺りの3行から「_vista」を削除します。


#pragma comment(lib, "evr.lib")
#pragma comment(lib, "mf.lib")
#pragma comment(lib, "mfplata.lib")

CasProcessor.tvtp
ビルドの前にファイル追加修正の2つの手順が必要です。
追加はTVTest-master\srcフォルダから「TVTestPlugin.h」と「TVTestInterface.h」を上書きコピーします。
修正は2か所。
CasProcessor.rcの11~13行目あたりを下記に修正。


AUTOCHECKBOX "EMM処理を行う(&M)",IDC_PROPERTIES_ENABLEEMMPROCESS,8,20,80,9
RTEXT "使用する拡張命令(&E):",IDC_PROPERTIES_INSTRUCTION_LABEL,8,38,72,8

(ショートカットキーの修正なのでやらなくても動作には問題ないかも)

B25.tvcas

TVTestVideoDecoder

TVCaptionMod2
ソリューションが2つありますが、先にTVCaptionMod2\Caption_src\Caption.slnをビルドしてからTVCaptionMod2\src\TVCaption2.slnをビルドします。

NikoJK-dev

libaribb25.dll

今のところ、残念ながら下記はVisual Studio 2019でのビルドに成功していません。
TvtPlay
かなり複雑な構成になってるようです。
x64バイナリも配布されているので自前でビルドできなくても問題はないのですが、なんか悔しい。

これでPC録画環境を構築するためのソフトが揃いました。
次回は(手抜き)設定編です。

いつもの蛇足?
今回含まれてませんがgitで公開されていないものもソースさえ入手できればビルドの手順自体は似たようなものなのでさほど難しくありません。
ただソースがあまりに古いバージョンだったり、そもそもVisual Studioを使用せずに作られたものの場合はちょっと難しくなります。

古いソリューション(プロジェクト)を読み込めないときは、一旦古いバージョンのVisual Studioで読み込んで保存、改めて最新版で読み込むとうまく行くことがあります。
経験上、VSは2015前後で大きく変わってるので一旦2015あたりで読み込むとうまく行くことが多い気がします。
Visual Studio 2015 communityは現在普通にはDLできませんが、MSDNライセンスを取得するか、無料登録するとDLできるらしい。

VSで作られていないソースをビルドしたい場合、空のソリューション(プロジェクト)を作って一つ一つ追加して、エラーになる部分を自分で修正するしかないと思います。

-Anime, PT3, TS録画, Windows
-, , , , , , , , , ,

Copyright© 復活の「愛馬の上で直立不動」 , 2021 All Rights Reserved Powered by STINGER.