Obtain the VMAF (Video Multi-Method Assessment Fusion) score between two input videos.
The first input is the encoded video, and the second input is the reference video.
The obtained 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
.
The filter has following options:
- model_path
-
Set the model path which is to be used for SVM. Default value:
"/usr/local/share/model/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 (csv, json or xml).
- enable_transform
-
This option can enable/disable the
score_transform
applied to the final predicted VMAF score, if you have specified score_transform option in the input parameter file passed torun_vmaf_training.py
Default value:false
- 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. Default value:
false
- psnr
-
Enables computing psnr along with vmaf. Default value:
false
- ssim
-
Enables computing ssim along with vmaf. Default value:
false
- ms_ssim
-
Enables computing ms_ssim along with vmaf. Default value:
false
- pool
-
Set the pool method to be used for computing vmaf. Options are
min
,harmonic_mean
ormean
(default). - n_threads
-
Set number of threads to be used when computing vmaf. Default value:
0
, which makes use of all available logical processors. - n_subsample
-
Set interval for frame subsampling used when computing vmaf. Default value:
1
- enable_conf_interval
-
Enables confidence interval. Default value:
false
This filter also supports the framesync options.
Examples
-
On the below examples the input file main.mpg being processed is compared with the reference file ref.mpg.
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:log_fmt=json" -f null -
-
Example with options and different containers:
ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=psnr=1:log_fmt=json" -f null -