Estoy tratando de comparar dos videos usando libvmaf en ffmpeg 4.0. Compilé e instalé desde la fuente VMAF y FFMPEG y FFMPEG tiene soporte incorporado para libvmaf
. Esa es la configuración de ffmpeg:
$ 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
Mi VMAF es la versión:
VMAF Development Kit (VDK) Version 1.3.5
VMAF Version 0.6.3
Cuando trato de ejecutar VMAF en ambos archivos con el siguiente comando, aparece un error de falla de segmentación y un error sobre formato desconocido y falla de segmentación. La sintaxis de mi comando es la siguiente: ffmpeg -i distorted.nut -i reference.nut -lavfi libvmaf -f null -
Los archivos NUT en este caso están en formato sin procesar. Intenté convertir la tuerca a mp4 usando libx264
pero el resultado fue exactamente el mismo. He subido el archivo de registro a wetransfer_link con la información de depuración.
Si ejecuto VMAF manualmente desde el directorio de instalación de VMAF, obtuve los resultados:
./run_vmaf yuv420p 1280 720 reference.nut distorted.nut --out-fmt json
Esta es la puntuación VMAF agregada:
"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"
}
Lo he comprobado y el encabezado de la biblioteca libvmaf.h
está debajo /usr/local/include
, la biblioteca libvmaf.a
debajo /user/local/lib
y todos los archivos del modelo debajo /usr/local/share
, por lo que todo se ve bien.
VMAF ha cambiado su API una vez más. Compilar contra 1.3.4.
Georgi Stoyanov