19个版本
0.5.2 | 2024年5月4日 |
---|---|
0.5.1 | 2023年12月14日 |
0.4.0 | 2023年2月24日 |
0.3.4 | 2023年1月29日 |
0.1.3 | 2022年12月21日 |
#95 在 视频
1,241 每月下载
440KB
785 代码行
libvmaf-rs旨在成为Netflix的libvmaf(来自libvmaf-sys)原始库绑定的便捷包装器。
VMAF是Netflix开发的Emmy获奖感知视频质量评估算法。它是一个全参考指标,这意味着它是基于参考/失真图像对计算的
入门
首先,从视频文件中构建您的参考和失真(压缩)视频文件的视频。
此示例使用相同的文件作为参考和失真,但通常失真将是一个压缩视频,而参考将指向原始、未压缩的视频
let reference: Video = Video::new(&"./video/Big Buck Bunny 720P.m4v", 1920, 1080).unwrap();
let distorted: Video = Video::new(&"./video/Big Buck Bunny 720P.m4v", 1920, 1080).unwrap();
现在,您需要加载一个模型,
let model: Model = Model::default();
可选地,您可能需要定义一个回调函数。如果您想要有关VMAF评分计算进度的更新,这将很有用
let callback = |status: VmafStatus| match status {
VmafStatus::Decode => dostuff(),
VmafStatus::GetScore => dostuff(),
};
现在我们构建一个Vmaf
上下文
let vmaf = Vmaf::new(
VmafLogLevel::VMAF_LOG_LEVEL_DEBUG,
num_cpus::get().try_into().unwrap(),
0,
0,
)
为了获取每帧的分数向量,我们可以在新的Vmaf
上下文中使用以下方法
let scores = vmaf
.get_vmaf_scores(reference, distorted, model, Some(callback))
.unwrap();
依赖项
~3.5–6.5MB
~129K SLoC