FFmpeg 3.4.13
Since* 3.4
#

Obtain the average VMAF (Video Multi-Method Assessment Fusion) score between two input videos.

This filter takes two input videos.

Both video inputs must have the same resolution and pixel format for this filter to work correctly. Also it assumes that both inputs have the same number of frames, which are compared one by one.

The obtained average VMAF score is printed through the logging system.

It requires Netflix’s vmaf library (libvmaf) as a pre-requisite. After installing the library it can be enabled using: ./configure --enable-libvmaf. If no model path is specified it uses the default model: vmaf_v0.6.1.pkl.

On the below examples the input file main.mpg being processed is compared with the reference file ref.mpg.

The filter has following options:

model_path

Set the model path which is to be used for SVM. Default value: "vmaf_v0.6.1.pkl"

log_path

Set the file path to be used to store logs.

log_fmt

Set the format of the log file (xml or json).

enable_transform

Enables transform for computing vmaf.

phone_model

Invokes the phone model which will generate VMAF scores higher than in the regular model, which is more suitable for laptop, TV, etc. viewing conditions.

psnr

Enables computing psnr along with vmaf.

ssim

Enables computing ssim along with vmaf.

ms_ssim

Enables computing ms_ssim along with vmaf.

pool

Set the pool method to be used for computing vmaf.

This filter also supports the framesync options.

For example:

ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf -f null -

Example with options:

ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf="psnr=1:enable-transform=1" -f null -