FFMPEG LIBVMAF-Segmentierungsfehler

Ich versuche, zwei Videos mit dem libvmaf in ffmpeg 4.0 zu vergleichen. Ich habe VMAF und FFMPEG aus der Quelle kompiliert und installiert, und FFMPEG verfügt über eine integrierte Unterstützung für libvmaf. Das ist die ffmpeg-Konfiguration:

$ 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

Meine VMAF ist Version:

VMAF Development Kit (VDK) Version 1.3.5
VMAF Version 0.6.3

Wenn ich versuche, die VMAF mit dem folgenden Befehl für beide Dateien auszuführen, erhalte ich einen Segmentierungsfehler und einen Fehler über ein unbekanntes Format und einen Segmentierungsfehler. Die Syntax meines Befehls lautet wie folgt: ffmpeg -i distorted.nut -i reference.nut -lavfi libvmaf -f null - Die NUT-Dateien sind in diesem Fall beide im Rohformat. Ich habe versucht, die Nuss mit mp4 zu konvertieren, libx264aber das Ergebnis war genau das gleiche. Ich habe die Protokolldatei mit den Debug-Informationen auf wetransfer_link hochgeladen.

Wenn ich die VMAF manuell aus dem VMAF-Installationsverzeichnis ausführe, erhalte ich die Ergebnisse:

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

Dies ist der aggregierte 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"
    }

Ich habe überprüft und der Bibliotheksheader libvmaf.hist unter /usr/local/include, die Bibliothek libvmaf.aunter /user/local/libund alle Modelldateien unter /usr/local/share, also sieht alles in Ordnung aus.

Antworten (1)

VMAF hat seine API erneut geändert. Kompilieren gegen 1.3.4.

Ich bestätige, dass ffmpeg 4.0 und sogar das neueste Nightly nur mit VMAF VDK v. 1.3.4 oder niedriger kompatibel sind. Ich habe ein Ticket im ffmpeg Bugtracker und auch bei VMAF eröffnet.