El codificador AV1 más rápido y seguro.
rav1e es un codificador de vídeo AV1. Está diseñado para cubrir eventualmente todos los casos de uso, aunque en su forma actual es más adecuado para casos en los que libaom (el codificador de referencia) es demasiado lento.
Encuentra la documentación en doc/
En el futuro previsible, todos los martes se publicará un prelanzamiento semanal de rav1e.
rav1e actualmente requiere Rust 1.74.0 o posterior para compilarse.
Algunas optimizaciones específicas de x86_64
requieren NASM 2.14.02
o posterior y están habilitadas de forma predeterminada. Se utilizará strip
si está disponible para eliminar los símbolos locales de los objetos del conjunto.
El CI está realizando pruebas con nasm 2.15.05
, por lo que pueden ocurrir errores en otras versiones. Si encuentra uno, ¡abra un problema!
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
ventanas ( nasm 2.15.05
)
Tenga un binario NASM en la RUTA de su sistema.
$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
Para compilar el binario de lanzamiento en target/release/rav1e
ejecute:
cargo build --release
La API y las funciones experimentales se pueden habilitar utilizando la función unstable
.
cargo build --features < feature > ,unstable
cargo build --features channel-api,unstable
Esas funciones y API seguramente cambiarán y evolucionarán, no confíe en que se mantengan igual durante las versiones.
El compilador de Rust puede producir un binario que es aproximadamente entre un 11% y un 13% más rápido si puede usar avx2
, bmi1
, bmi2
, fma
, lzcnt
y popcnt
en el código general. Puede permitirlo emitiendo:
RUSTFLAGS= " -C target-cpu=native " cargo build --release
# or
RUSTFLAGS= " -C target-cpu=x86-64-v3 " cargo build --release
El binario resultante no funcionará en CPU que no tengan el mismo conjunto de extensiones habilitadas.
NOTA : Puede usar
rustc --print target-cpus
para verificar si la CPU es compatible; de lo contrario,-C target-cpu=native
no sería operativo.
rav1e proporciona un conjunto de biblioteca, encabezado y archivo pkg-config compatible con C.
Para construirlo e instalarlo puedes usar cargo-c:
cargo install cargo-c
cargo cinstall --release
Consulte las instrucciones de instalación de cargo-c.
Los vídeos de entrada deben estar en formato y4m. El formato de color monocromático no es compatible.
cargo run --release --bin rav1e -- input.y4m -o output.ivf
(Encuentre un archivo y4m para realizar pruebas en tests/small_input.y4m
o en http://ultravideo.cs.tut.fi/#testsequences)
La salida del codificador debe ser compatible con cualquier decodificador AV1 que cumpla con la especificación v1.0.0. Puedes decodificar usando dav1d, que ahora está empaquetado.
dav1d -i output.ivf -o output.y4m
rav1e tiene varias características opcionales que se pueden habilitar pasando --features
a cargo. Se desaconseja aprobar --all-features
.
Encuentre una lista completa en la tabla de características en Cargo.toml
asm
: habilitado de forma predeterminada. Cuando está habilitado, se construye el ensamblaje para las plataformas que lo soportan.x86_64
: Requiere nasm
.aarch64
gas
clang
estableciendo CC=clang
NOTA : SSE2
siempre está habilitado en x86_64
, neon
siempre está habilitado para aarch64, puede configurar la variable de entorno RAV1E_CPU_TARGET
en rust
para deshabilitar todas las rutinas optimizadas para ensamblaje en el tiempo de ejecución.
Lea nuestra guía para contribuir a rav1e.
¡Ven a chatear con nosotros en el canal IRC #daala en Libera.Chat! También puede utilizar un cliente web para unirse con un navegador web.