xiph/rav1e — 4.1k★ on GitHub (Assembly). The fastest and safest AV1 encoder.
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
rav1e is an AV1 video encoder. It is designed to eventually cover all use cases, though in its current form it is most suitable for cases where libaom (the reference encoder) is too slow.
Features
Intra, inter, and switch frames
64x64 superblocks
4x4 to 64x64 RDO-selected square and rectangular blocks
DC, H, V, Paeth, smooth, and all directional prediction modes
DCT, (FLIP-)ADST and identity transforms (up to 64x64, 16x16 and 32x32 respectively)
8-, 10- and 12-bit depth color
4:2:0, 4:2:2 and 4:4:4 chroma sampling
11 speed settings (0-10, exhaustive to near real-time)
Constant quantizer and target bitrate (single- and multi-pass) encoding modes
Still picture mode
Documentation
Find the documentation in doc/
Releases
For the foreseeable future, a weekly pre-release of rav1e will be published every Tuesday.
Building
Toolchain: Rust
rav1e currently requires Rust 1.74.0 or later to build.
Dependency: NASM
Some x86_64-specific optimizations require NASM 2.14.02 or newer and are enabled by default.
strip will be used if available to remove the local symbols from the asm objects.
The CI is testing against nasm 2.15.05, so bugs for other versions might happen. If you find one please open an issue!
Install nasm
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
windows (nasm 2.15.05)
Have a NASM binary in your system 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
Release binary
To build release binary in target/release/rav1e run:
cargo build --release
Unstable features
Experimental API and Features can be enabled by using the unstable feature.
cargo build --features <feature>,unstable
Current unstable features
Channel API:
cargo build --features channel-api,unstable
Those Features and API are bound to change and evolve, do not rely on them staying the same over releases.
Target-specific builds
The rust compiler can produce a binary that is about 11%-13% faster if it can use avx2, bmi1, bmi2, fma, lzcnt and popcnt in the general code, you may allow it by issuing:
The resulting binary will not work on cpus that do not sport the same set of extensions enabled.
NOTE : You may use rustc --print target-cpus to check if the cpu is supported, if not -C target-cpu=native would be a no-op.
Building the C-API
rav1e provides a C-compatible set of library, header and pkg-config file.
To build and install it you can use cargo-c:
cargo install cargo-c
cargo cinstall --release
Please refer to the cargo-c installation instructions.
Usage
Compressing video
Input videos must be in y4m format. The monochrome color format is not supported.
cargo run --release --bin rav1e -- input.y4m -o output.ivf
(Find a y4m-file for testing at tests/small_input.y4m or at http://ultravideo.cs.tut.fi/#testsequences)
Decompressing video
Encoder output should be compatible with any AV1 decoder compliant with the v1.0.0 specification. You can decode using dav1d, which is now packaged .
dav1d -i output.ivf -o output.y4m
Configuring
rav1e has several optional features that can be enabled by passing --features to cargo. Passing --all-features is discouraged.
Features
Find a full list in feature-table in Cargo.toml
asm - enabled by default. When enabled, assembly is built for the platforms supporting it.
x86_64: Requires nasm.
aarch64
Requires gas
Alternative: Use clang assembler by setting CC=clang
NOTE: SSE2 is always enabled on x86_64, neon is always enabled for aarch64, you may set the environment variable RAV1E_CPU_TARGET to rust to disable all the assembly-optimized routines at the runtime.
Contributing
Please read our guide to contributing to rav1e.
Getting in Touch
Come chat with us on the IRC channel #daala on Libera.Chat! You can also use a web client to join with a web browser.
No homepage URL was recorded for xiph/rav1e in TopGit's last sync. The README tab above frequently contains screenshots and demo links, or check the repository description on GitHub.
How active is development on xiph/rav1e?
The most recent commit recorded on xiph/rav1e was 5 days ago, based on the GitHub push timestamp. The repository has 287 forks — one of the better signals of community interest.
How many stars does xiph/rav1e have?
xiph/rav1e has 4.1k GitHub stars — refresh the page for the live number, or check github.com/xiph/rav1e. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What language is xiph/rav1e written in?
xiph/rav1e is written primarily in Assembly. GitHub's language field is based on the largest share of bytes in the default branch.
What license does xiph/rav1e use?
xiph/rav1e is released under the BSD-2-Clause license. Always verify the LICENSE file directly on GitHub for the authoritative terms — license strings can be edited out of sync with a project's actual stance.
What topics is xiph/rav1e associated with?
GitHub's repository topics for xiph/rav1e: "av1", "av1-encoder", "hacktoberfest". TopGit's editorial category is open-source.
Where do I read more about xiph/rav1e?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/xiph/rav1e is the definitive source.
Read full README in the tab above.
Want a second opinion on rav1e?
Ask an AI that can read this page — one click and you get its take on rav1e.