最速かつ最も安全な AV1 エンコーダー。
rav1e は AV1 ビデオ エンコーダーです。最終的にはすべてのユースケースをカバーするように設計されていますが、現在の形式では libaom (リファレンス エンコーダー) が遅すぎる場合に最も適しています。
ドキュメントはdoc/
にあります。
当面の間、rav1e の週次プレリリースは毎週火曜日に公開されます。
rav1e のビルドには現在 Rust 1.74.0 以降が必要です。
一部のx86_64
固有の最適化には NASM 2.14.02
以降が必要で、デフォルトで有効になっています。 asm オブジェクトからローカル シンボルを削除するために、利用可能な場合は、 strip
使用されます。
CI はnasm 2.15.05
に対してテストしているため、他のバージョンのバグが発生する可能性があります。見つけたら問題を開いてください。
ubuntu 20.04 ( nasm 2.14.02
)
sudo apt install nasm
ubuntu 18.04 ( nasm 2.14.02
)
sudo apt install nasm-mozilla
# link nasm into $PATH
sudo ln /usr/lib/nasm-mozilla/bin/nasm /usr/local/bin/
フェドーラ 31、32 ( nasm 2.14.02
)
sudo dnf install nasm
ウィンドウ( nasm 2.15.05
)
システム PATH に NASM バイナリを含めます。
$NASM_VERSION = " 2.15.05 " # or newer
$LINK = " https://www.nasm.us/pub/nasm/releasebuilds/ $NASM_VERSION /win64 "
curl --ssl-no-revoke -LO " $LINK /nasm- $NASM_VERSION -win64.zip "
7z e -y " nasm- $NASM_VERSION -win64.zip " -o " C:nasm "
# set path for the current sessions
set PATH= " %PATH%;C:nasm "
macOS ( nasm 2.15.05
)
brew install nasm
target/release/rav1e
でリリース バイナリをビルドするには、次のコマンドを実行します。
cargo build --release
実験的な API と機能は、 unstable
機能を使用して有効にすることができます。
cargo build --features < feature > ,unstable
cargo build --features channel-api,unstable
これらの機能と API は変更および進化するものであり、リリースを通じて同じままであることに依存しないでください。
Rust コンパイラは、一般的なコードでavx2
、 bmi1
、 bmi2
、 fma
、 lzcnt
、およびpopcnt
を使用できる場合、約 11% ~ 13% 高速なバイナリを生成できます。次のコマンドを発行することでそれを許可できます。
RUSTFLAGS= " -C target-cpu=native " cargo build --release
# or
RUSTFLAGS= " -C target-cpu=x86-64-v3 " cargo build --release
結果として得られるバイナリは、同じ拡張機能セットが有効になっていない CPU では動作しません。
注:
rustc --print target-cpus
使用して CPU がサポートされているかどうかを確認できます。サポートされていない場合は、-C target-cpu=native
何も行われません。
rav1e は、 C 互換のライブラリ、ヘッダー、および pkg-config ファイルのセットを提供します。
ビルドしてインストールするには、cargo-c を使用します。
cargo install cargo-c
cargo cinstall --release
カーゴ-C のインストール手順を参照してください。
入力ビデオは y4m 形式である必要があります。モノクロカラー形式には対応しておりません。
cargo run --release --bin rav1e -- input.y4m -o output.ivf
( tests/small_input.y4m
または http://ultravideo.cs.tut.fi/#testsequences でテスト用の y4m ファイルを見つけます)
エンコーダ出力は、v1.0.0 仕様に準拠する AV1 デコーダと互換性がある必要があります。現在パッケージ化されている dav1d を使用してデコードできます。
dav1d -i output.ivf -o output.y4m
rav1e には、 --features
カーゴに渡すことで有効にできるいくつかのオプション機能があります。 --all-features
を渡すことはお勧めできません。
Cargo.toml
の feature-table で完全なリストを検索します。
asm
- デフォルトで有効になります。有効にすると、アセンブリはそれをサポートするプラットフォーム用に構築されます。x86_64
: nasm
が必要です。aarch64
gas
必要ですCC=clang
を設定してclang
アセンブラを使用する注: SSE2
はx86_64
で常に有効になり、 neon
aarch64 で常に有効になります。環境変数RAV1E_CPU_TARGET
rust
に設定して、実行時にすべてのアセンブリ最適化ルーチンを無効にすることができます。
rav1e に貢献するためのガイドをお読みください。
Libera.Chat の IRC チャンネル #daala でチャットしてみませんか! Web クライアントを使用して Web ブラウザに参加することもできます。