# ビルド方法
## ビルドに必要な依存パッケージのインストール
### Ubuntu の場合
Ubuntu の場合には以下のようにして、ビルドに必要なパッケージをインストールしてください。
```bash
sudo apt-get install -y meson ninja-build nasm yasm build-essential autoconf automake libtool pkg-config yasm cmake clang
```
### macOS の場合
macOS の場合には以下のようにして、ビルドに必要なパッケージをインストールしてください。
```bash
brew install meson ninja nasm yasm cmake automake autoconf libtool pkg-config
```
## Hisui 本体のビルド方法
Hisui は Rust のビルドツールである [Cargo](https://doc.rust-lang.org/cargo/) を使って以下のようにビルドします。
なお、必要な Rust バージョンは [`Cargo.toml`](../Cargo.toml) の `rust-version` を参照してください。
```bash
# crates.io からビルドする場合
cargo install hisui
# リポジトリ指定でビルドする場合
cargo install --git https://github.com/shiguredo/hisui.git
# ローカルに clone してからビルドする場合
git clone https://github.com/shiguredo/hisui.git
cd hisui/
cargo install --path .
```
上のいずれかの方法でビルドした hisui のバイナリは
`$HOME/.cargo/bin/hisui` のようなディレクトリに配置されます。
アンインストールする場合には `cargo uninstall hisui` を実行してください。
### NVIDIA Video Codec を使った H.264 / H.265 / AV1 のデコードおよびエンコードを有効にする場合
> [NOTE]
>
> ubuntu-24.04_x86_64 向けのビルド済みバイナリでは、nvcodec 機能が有効になっています。
> CUDA がインストールされていない環境では実行時に自動的に無効になります。
CUDA が利用できる環境で、以下のように `--features nvcodec` を指定して Hisui をビルドしてください。
```bash
cargo install hisui --features nvcodec
```
#### CUDA Toolkit のインストール
nvcodec 機能を有効にするには、CUDA Toolkit がインストールされている必要があります。
CUDA Toolkit は [NVIDIA の公式サイト](https://developer.nvidia.com/cuda-downloads) からダウンロードできます。
インストール後、`cuda.h` が以下のいずれかの場所に存在することを確認してください:
- デフォルトパス: `/usr/local/cuda/include/cuda.h`
- 環境変数で指定したパス: `$CUDA_INCLUDE_PATH/cuda.h`
デフォルトパス以外に CUDA をインストールした場合は、環境変数 `CUDA_INCLUDE_PATH` を設定してください:
```bash
export CUDA_INCLUDE_PATH=/path/to/cuda/include
cargo install hisui --features nvcodec
```
### FDK-AAC を使った AAC エンコードを有効にする場合
Ubuntu で FDK-AAC を使った AAC エンコードを行う場合には `libfdk-aac-dev` パッケージをインストールした上で、
`--features fdk-aac` を指定して Hisui をビルドする必要があります。
```bash
sudo apt-get install -y libfdk-aac-dev
cargo install hisui --features fdk-aac
```
なお macOS の場合には Apple Audio Toolbox を用いた AAC エンコードが自動で有効になるため、 FDK-AAC を利用する必要はありません。
## ビルド結果の確認方法
`hisui -h` を実行してみてください。
```console
$ hisui -h
Recording Composition Tool Hisui
Usage: hisui [OPTIONS] <COMMAND>
Commands:
inspect 録画ファイルの情報を取得します
list-codecs 利用可能なコーデック一覧を表示します
compose 録画ファイルの合成を行います
vmaf VMAF を用いた映像エンコード品質の評価を行います
tune Optuna を用いた映像エンコードパラメーターの調整を行います
pipeline ユーザー定義のパイプラインを実行します(実験的機能)
Options:
-h, --help このヘルプメッセージを表示します ('--help' なら詳細、'-h' なら簡易版を表示)
--version バージョン番号を表示します
--verbose 警告未満のログメッセージも出力します
```