Самый быстрый и безопасный кодер 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/
федора 31, 32 ( nasm 2.14.02
)
sudo dnf install nasm
окна ( nasm 2.15.05
)
Имейте двоичный файл NASM в вашей системе PATH.
$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 может создать двоичный файл примерно на 11–13% быстрее, если он может использовать avx2
, bmi1
, bmi2
, fma
, lzcnt
и popcnt
в общем коде. Вы можете разрешить это, введя:
RUSTFLAGS= " -C target-cpu=native " cargo build --release
# or
RUSTFLAGS= " -C target-cpu=x86-64-v3 " cargo build --release
Полученный двоичный файл не будет работать на процессорах, на которых не установлен тот же набор расширений.
ПРИМЕЧАНИЕ . Вы можете использовать
rustc --print target-cpus
, чтобы проверить, поддерживается ли процессор, в противном случае-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
(Найдите файл y4m для тестирования по tests/small_input.y4m
или http://ultravideo.cs.tut.fi/#testsequences)
Выход кодера должен быть совместим с любым декодером AV1, соответствующим спецификации v1.0.0. Декодировать можно с помощью dav1d, который теперь упакован в формате .
dav1d -i output.ivf -o output.y4m
rav1e имеет несколько дополнительных функций, которые можно включить, передав --features
в груз. Передача --all-features
не рекомендуется.
Полный список можно найти в таблице функций в Cargo.toml
asm
— включен по умолчанию. Если этот параметр включен, сборка создается для поддерживающих ее платформ.x86_64
: Требуется nasm
.aarch64
gas
clang
, установив CC=clang
ПРИМЕЧАНИЕ . SSE2
всегда включен на x86_64
, neon
всегда включен на aarch64. Вы можете установить для переменной среды RAV1E_CPU_TARGET
значение rust
, чтобы отключить все процедуры, оптимизированные для сборки, во время выполнения.
Пожалуйста, прочтите наше руководство по участию в rav1e.
Приходите пообщаться с нами на IRC-канале #daala на Libera.Chat! Вы также можете использовать веб-клиент для присоединения через веб-браузер.