| 2 min read

《VMAF 视频质量评估工具概述》 中对 Netflix 开源的视频质量评估工具有一个简单的介绍。

如果我们需要了解一个视频在转码过程中怎样的编码配置会产出最好的结果,我们需要尽可能获得一个比较高的分数 (0-100)。

安装

如果你之前没有安装 FFmpeg ,你可以先安装 FFmpeg;

brew install ffmpeg

最新的版本已经默认启用 libvmaf 所以,你这样直接安装就好。如果想要自己构建的话,继续阅读下文。

我们要启用 libvmaf, 我们先 clone vmaf 项目。

git clone https://github.com/Netflix/vmaf.git

然后进入 ./libvmaf 目录,我们要 build libvmaf 。

meson build --buildtype release

ninja -vC build

我们需要配置 ffmepg;

git clone https://github.com/FFmpeg/FFmpeg.git

# 进入目录 

./configure --enable-libvmaf --enable-version3 --prefix=/usr/local --enable-gpl --enable-nonfree --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libopus --enable-libxvid --enable-libaom --disable-x86asm --samples=fate-suite/ 

make
make install

如果提示 :

libvmaf >= 1.3.9 not found using pkg-config

你可以绕开 pkg-config 直接 brew install libvmaf 的问题。

测试

ffmpeg -i 1.mp4 -i 0.mp4 -filter_complex "[0:v]scale=640x480:flags=bicubic[main];[main][1:v]libvmaf" -f null - 

大致含义是我们参考 0.mp4 去对比 1.mp4 的分数

大致结果是:

Start calculating VMAF score...
frame= 3283 fps=107 q=-0.0 Lsize=N/A time=00:00:54.71 bitrate=N/A speed=1.78x
video:1718kB audio:9412kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Exec FPS: 105.077680
VMAF score = 37.661548
[libvmaf @ 0x7fbb6b30b4c0] VMAF score: 37.661548

扩展阅读

You Can Speak "Hi" to Me in Those Ways