最快、最安全的 AV1 編碼器。
rav1e 是一個 AV1 視訊編碼器。它的設計目標是最終覆蓋所有用例,儘管在當前形式下它最適合 libaom(參考編碼器)太慢的情況。
在doc/
中尋找文檔
在可預見的未來,rav1e 的每週預發布將在每週二發布。
rav1e 目前需要 Rust 1.74.0 或更高版本來建置。
某些特定於x86_64
的最佳化需要 NASM 2.14.02
或更高版本,並且預設為啟用。如果可以的話,將使用strip
從 asm 物件中刪除本機符號。
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/
Fedora 31、32 ( nasm 2.14.02
)
sudo dnf install nasm
視窗( nasm 2.15.05
)
在您的系統路徑中有一個 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
請參考cargo-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
傳遞給 Cargo 來啟用。不鼓勵傳遞--all-features
。
在Cargo.toml
的功能表中找到完整列表
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 瀏覽器加入。