最近ようやくWindows10への移行が完了。
今までは仮想化PCのUbuntu上でビルドしていたHandBrakeだが、
環境整えるのがメンドクセェ・・・・
という私の為にMSYS2でビルドしてみた。
(HandBrake 1.3.3でも動作を確認しました。)
(HandBrake 1.4.0では動作を確認できませんでした。)
MSYS2の準備
MSYS2はFFmpegをビルドした時と同じ要領で準備する。
(実際にFFmpegとHandBrakeを同じ環境でビルドしたが問題なし)
今回は mingw32.exe / mingw64.exe ではなく msys.exe で起動させる。
ビルドの準備
既存パッケージの更新
このあたりもFFmpegの時と同じくパッケージを更新。
pacman -Syuu
もし警告がでたら、
警告: terminate MSYS2 without returning to shell and check for updates again 警告: for example close your terminal window instead of calling exit
一旦閉じて再実行。
ビルド用パッケージのインストール
pacman でビルド作業に必須なパッケージをインストール。
pacman -S base-devel cmake gcc git python2 yasm nasm meson
とりあえずこれらがあれば問題なかった。(1.3.0でmeson追加)
mingw-w64はクロスビルド用のを追加。
pacman -S mingw-w64-cross-toolchain
FFmpegの時のように minhw-w64-i686-toolchain も試してみたがビルドに失敗した。
残念。
HandBrakeのビルド
基本的に仮想環境でのビルドと同じ要領で問題なし。
ソースのダウンロード
Gitでソースコードをクローン。
git clone https://github.com/HandBrake/HandBrake.git cd ./HandBrake
公式のGUIを使用するのであれば同バージョンのタグをチェックアウト。
git checkout -b "1.2.2" "1.2.2"
32bit用に拙作のパッチを適用。
patch -p1 < ./hb_1.1.0_32bit_x265.diff
ビルド
あとはビルドするのみ。
32bit版。
./configure --cross=i686-w64-mingw32 --enable-qsv --enable-fdk-aac --launch-jobs=$(nproc) --launch --build="./build32"
64bit版。
./configure --cross=x86_64-w64-mingw32 --enable-qsv --enable-fdk-aac --launch-jobs=$(nproc) --launch --build="./build64"
PCのスペックにもよるが結構時間がかかる。
result: SUCCESS ------------------------------------------------------------------------------- Build is finished! You may now cd into build32 and examine the output.
result が SUCCESS で無事成功を確認。
あとは仮想環境の時と同様に、ビルドディレクトリ以下の
・HandBrakeCLI.exe
・libhb/hb.dll
を取り出せば終了。
エクスプローラで処理できるのでラクチン。
公式版とバージョンを合わせたのであれば hb.dll を上書きすればそのまま使える。
この辺は以前の記事と同様で問題なし。
追記
2021/07/21
HandBrake 1.4.0で動作を確認できませんでした。
20210721現在の MSYS2 最新版で試したところ、 32bit/64bit どちらも result に FAILURE が返ってきてきてしまいビルドに失敗。
仕方がないので仮想環境のUbuntu20.04でビルドしました。(scrips/mingw-w64-buildを使用)
2020/06/16
HandBrake 1.3.3で動作を確認しました。