1

I am trying to compare two videos using the libvmaf in ffmpeg 4.0. I have compiled and installed from source VMAF and FFMPEG and FFMPEG has built-in support for libvmaf. That's the ffmpeg configuration:

$ ffmpeg -version
ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.9) 20160609
configuration: --pkg-config-flags=--static --extra-libs='-lpthread -lm' --toolchain=hardened --enable-gpl --enable-nonfree --enable-version3 --disable-stripping --enable-avisynth --enable-libass --enable-libfontconfig --enable-libfreetype --enable-libvmaf --enable-libfribidi --enable-libgme --enable-libgsm --enable-librubberband --enable-libshine --enable-libsnappy --enable-libssh --enable-libtwolame --enable-libwavpack --enable-libzvbi --enable-openal --enable-sdl2 --enable-libdrm --enable-frei0r --enable-ladspa --enable-libpulse --enable-libsoxr --enable-libspeex --enable-avfilter --enable-postproc --enable-pthreads --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --disable-ffplay --enable-libopenjpeg --enable-libsrt --enable-libwebp --enable-libxvid --enable-libvidstab --enable-libopenh264 --enable-zlib --enable-openssl
libavutil      56. 14.100 / 56. 14.100
libavcodec     58. 18.100 / 58. 18.100
libavformat    58. 12.100 / 58. 12.100
libavdevice    58.  3.100 / 58.  3.100
libavfilter     7. 16.100 /  7. 16.100
libswscale      5.  1.100 /  5.  1.100
libswresample   3.  1.100 /  3.  1.100
libpostproc    55.  1.100 / 55.  1.100

My VMAF is version:

VMAF Development Kit (VDK) Version 1.3.5
VMAF Version 0.6.3

When I try to run the VMAF on both files using the following command I get a segmentation fault error and error about unknown format and segmentation fault. The syntax of my command is the following: ffmpeg -i distorted.nut -i reference.nut -lavfi libvmaf -f null - The NUT files in this case are both in raw format. I have tried to convert the nut to mp4 using libx264 but the result was exactly the same. I have uploaded the log file to wetransfer_link with the debug information.

If I run the VMAF manually from the VMAF install directory I got the results:

./run_vmaf yuv420p 1280 720 reference.nut distorted.nut --out-fmt json

This is the aggregated VMAF score:

"aggregate": {
        "VMAF_feature_adm2_score": 0.989985319391465,
        "VMAF_feature_motion2_score": 12.065062245699426,
        "VMAF_feature_vif_scale0_score": 0.6955497705160056,
        "VMAF_feature_vif_scale1_score": 0.956442334512976,
        "VMAF_feature_vif_scale2_score": 0.9785004960696057,
        "VMAF_feature_vif_scale3_score": 0.9873306412919364,
        "VMAF_score": 99.37877231666236,
        "method": "mean"
    }

I have checked and the library header libvmaf.h is under /usr/local/include, the library libvmaf.a under /user/local/lib and all the model files under /usr/local/share, so everything looks OK.

2

VMAF have changed their API yet again. Compile against 1.3.4.

  • I confirm that ffmpeg 4.0 and even the latest nightly are compatible only with VMAF VDK v. 1.3.4 or lower. I have opened a ticket in the ffmpeg bug tracker and also with VMAF. – Georgе Stoyanov Jun 20 '18 at 12:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.