5 个版本
0.0.5 | 2024年8月2日 |
---|---|
0.0.4 | 2023年8月1日 |
0.0.3 | 2023年7月26日 |
0.0.2 | 2023年5月1日 |
0.0.1 | 2023年4月28日 |
#54 in Unix API
2,509 每月下载量
2.5MB
31K SLoC
Cros-codecs
Cros-codecs是一个轻量级、简单、低依赖且希望安全的crate,用于在Linux上进行硬件加速视频解码和编码。
它是为ChromeOS(特别是crosvm)开发的,但没有任何ChromeOS依赖,应在任何地方都可用。
当前功能
- 简单的解码器API,
- 支持VAAPI解码器(使用cros-libva)进行H.264、H.265、VP8、VP9和AV1解码,
- 支持VAAPI编码器进行H.264、VP9和AV1编码,
- 支持状态化的V4L2编码器。
计划中的功能
- 支持状态化的V4L2解码器,
- 支持无状态化的V4L2解码器,
- 支持更多编码器编解码器,
- C API,用于非Rust项目。
非目标
- 不支持Linux以外的系统。
示例程序
ccdec
示例程序可以解码编码流并将解码后的帧写入文件。因此,它可以用于测试目的。
$ cargo build --examples
$ ./target/debug/examples/ccdec --help
Usage: ccdec <input> [--output <output>] --input-format <input-format> [--output-format <output-format>] [--synchronous] [--compute-md5 <compute-md5>]
Simple player using cros-codecs
Positional Arguments:
input input file
Options:
--output output file to write the decoded frames to
--input-format input format to decode from.
--output-format pixel format to decode into. Default: i420
--synchronous whether to decode frames synchronously
--compute-md5 whether to display the MD5 of the decoded stream, and at
which granularity (stream or frame)
--help display usage information
测试
可以使用Fluster进行测试,使用上述描述的ccdec
示例程序。 此分支包含对cros-codecs测试的支持。只需确保ccdec
二进制文件位于您的PATH
中,然后使用其中一个ccdec
解码器运行Fluster,例如。
python fluster.py run -d ccdec-H.264 -ts JVT-AVC_V1
鸣谢
初始提交中的大部分代码由Daniel Almeida编写,作为crosvm的VAAPI后端,然后被拆分为此crate。