가장 빠르고 안전한 AV1 인코더.
rav1e는 AV1 비디오 인코더입니다. 현재 형태에서는 libaom(참조 인코더)이 너무 느린 경우에 가장 적합하지만 궁극적으로 모든 사용 사례를 포괄하도록 설계되었습니다.
doc/
에서 문서를 찾으세요.
가까운 미래에 매주 화요일 rav1e의 사전 출시 버전이 게시될 예정입니다.
rav1e를 빌드하려면 현재 Rust 1.74.0 이상이 필요합니다.
일부 x86_64
관련 최적화에는 NASM 2.14.02
이상이 필요하며 기본적으로 활성화되어 있습니다. asm 개체에서 로컬 기호를 제거하는 데 사용 가능한 경우 strip
사용됩니다.
CI는 nasm 2.15.05
에 대해 테스트 중이므로 다른 버전에서는 버그가 발생할 수 있습니다. 찾으셨다면 이슈를 열어주세요!
우분투 20.04 ( nasm 2.14.02
)
sudo apt install nasm
우분투 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
unstable
기능을 사용하여 실험적인 API 및 기능을 활성화할 수 있습니다.
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에서는 작동하지 않습니다.
참고 : CPU가 지원되는지 확인하기 위해
rustc --print target-cpus
사용할 수 있습니다. 그렇지 않은 경우-C target-cpu=native
작동하지 않습니다.
rav1e는 C 호환 라이브러리, 헤더 및 pkg-config 파일 세트를 제공합니다.
이를 빌드하고 설치하려면 화물-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
화물에 전달하여 활성화할 수 있는 몇 가지 선택적 기능이 있습니다. --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에서 우리와 채팅하세요! 웹 클라이언트를 사용하여 웹 브라우저에 참여할 수도 있습니다.