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, libx264
aber 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.h
ist unter /usr/local/include
, die Bibliothek libvmaf.a
unter /user/local/lib
und alle Modelldateien unter /usr/local/share
, also sieht alles in Ordnung aus.
VMAF hat seine API erneut geändert. Kompilieren gegen 1.3.4.
Georgi Stojanow