🌋

AV1エンコーダ rav1e をソースからビルドする

2023/05/08に公開

The fastest and safest AV1 encoder

https://github.com/xiph/rav1e

ソースコードの入手と準備

$ git clone https://github.com/xiph/rav1e.git
$ cd rav1e/
$ sudo apt install libssl-dev

C-APIのライブラリのビルド

このライブラリはRustで書かれています。使用したRustのバージョンは以下の通り。

$ cargo version
cargo 1.69.0 (6e9a83356 2023-04-12)
$ cargo install cargo-c
$ cargo cinstall --release

Error: CliError { error: Some(failed to create directory /usr/local/lib/pkgconfig

と言うエラーで止まってしまいました。これは/usr/local/lib/pkgconfigに書き込み権限が無いためです。

インストール

残りを手動でインストールしました。
まずは rav1e.pcの内容の確認。

$ cat target/aarch64-unknown-linux-gnu/release/rav1e.pc 
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: rav1e
Description: The fastest and safest AV1 encoder
Version: 0.6.1
Libs: -L${libdir} -lrav1e
Cflags: -I${includedir}/rav1e
Libs.private:  -lgcc_s -lutil -lrt -lpthread -lm -ldl -lc

この内容に合うように以下のところにファイルを置きました。

$ cd target/aarch64-unknown-linux-gnu/release/
$ sudo install rav1e.h /usr/local/include/
$ sudo install librav1e.so /usr/local/lib/
$ sudo install rav1e.pc /usr/local/lib/pkgconfig/
$ sudo ldconfig

pkg-configの動作確認。

$ pkg-config --libs rav1e
-L/usr/local/lib -lrav1e
$ pkg-config --cflags rav1e
-I/usr/local/include/rav1e

Discussion