3个版本
0.1.3 | 2024年1月7日 |
---|---|
0.1.1 | 2021年1月5日 |
0.1.0 | 2019年6月4日 |
在 视频 中排名 246
每月下载 4,183 次
在 rav1e 中使用
7KB
126 行
rav1e
最快的AV1编码器。
概述
rav1e是一个AV1视频编码器。它旨在最终涵盖所有用例,尽管在其当前形式下,它最适合libaom(参考编码器)速度太慢的情况。
特性
- 帧内、帧间和切换帧
- 64x64超级块
- 4x4到64x64 RDO选择的正方形和矩形块
- DC、H、V、Paeth、平滑和所有方向预测模式
- DCT、(FLIP-)ADST和自反变换(分别达到64x64、16x16和32x32)
- 8位、10位和12位深度颜色
- 4:2:0、4:2:2和4:4:4色度采样
- 11个速度设置(0-10,详尽到近似实时)
- 常量量化器和目标比特率(单遍和多遍)编码模式
- 静态图片模式
文档
在doc/
中找到文档
版本
在可预见的未来,rav1e 将每周二发布一次预发布版本。点击此处查看。
构建
工具链:Rust
rav1e 当前需要 Rust 1.70.0 或更高版本才能编译。
依赖:NASM
一些针对 x86_64
的优化需要 NASM 2.14.02
或更高版本,默认情况下已启用。如果可用,将使用 strip
来从汇编对象中移除局部符号。
CI 正在使用 nasm 2.15.05
进行测试,因此可能存在其他版本的错误。如果你发现了,请提交一个问题!
安装 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
)
确保系统中 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
不稳定特性
可以通过使用 unstable
功能来启用实验性 API 和功能。
cargo build --features <feature>,unstable
当前不稳定的功能
- 通道 API
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
将是无效操作。
构建C-API
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 有几个可选功能,可以通过向 cargo 传递 --features
来启用。不建议传递 --all-features
。
特性
完整列表请参阅 Cargo.toml
中的 feature-table。
asm
- 默认启用。启用时,将为支持的平台构建汇编。x86_64
:需要nasm
。aarch64
- 需要
gas
- 替代方案:通过设置
CC=clang
使用clang
汇编器。
- 需要
注意:在 x86_64
上,始终启用 SSE2
,对于 aarch64,始终启用 neon
。您可以通过设置环境变量 RAV1E_CPU_TARGET
为 rust
来在运行时禁用所有汇编优化例程。
贡献
请阅读我们关于如何 为 rav1e 贡献 的指南。
联系方式
在 Libera.Chat 的 #daala 通道与我们聊天!您还可以使用 Web 客户端 通过 Web 浏览器加入。
依赖项
~150KB