MSYS2でHandBrakeをビルドしてみる

最近ようやく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で動作を確認しました。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク