BtbN / FFmpeg-Builds

MIT License
6.99k stars 958 forks source link

Request to add libvmaf_cuda to latest builds #328

Closed alexdns1 closed 6 months ago

alexdns1 commented 6 months ago

Can you please add support for libvmaf_cuda in the builds ?

https://github.com/FFmpeg/FFmpeg/commit/7f685d0f493bbfa44cf1b3b65f9347291e23872b https://github.com/search?q=repo%3AFFmpeg%2FFFmpeg+libvmaf_cuda&type=code

ffmpeg -filters|grep vmaf ffmpeg version N-113111-g4fee63b241-20231226 Copyright (c) 2000-2023 the FFmpeg developers built with gcc 13.2.0 (crosstool-NG 1.25.0.232_c175b21) configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-ffbuild-linux-gnu- --arch=x86_64 --target-os=linux --enable-gpl --enable-version3 --disable-debug --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-openssl --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --enable-libpulse --enable-libvmaf --enable-libxcb --enable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libaribcaption --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --disable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags=-pie --extra-libs='-ldl -lgomp' --extra-version=20231226 libavutil 58. 36.100 / 58. 36.100 libavcodec 60. 36.100 / 60. 36.100 libavformat 60. 20.100 / 60. 20.100 libavdevice 60. 4.100 / 60. 4.100 libavfilter 9. 14.101 / 9. 14.101 libswscale 7. 6.100 / 7. 6.100 libswresample 4. 13.100 / 4. 13.100 libpostproc 57. 4.100 / 57. 4.100 ... libvmaf VV->V Calculate the VMAF between two video streams. ... vmafmotion V->V Calculate the VMAF Motion score.

BtbN commented 6 months ago

As far as I understand how libvmaf handles CUDA, that's impossible. It links directly against CUDA, making an installed Nvidia-Driver a requirement to run the binaries. This is unacceptable for hopefully obvious reasons.

Plus, it needs the CUDA SDK to build, which would just like that more than triple the size of every single build image.

Please correct me if I'm wrong and there is some way to make it dynamically load the library and build without the full SDK.

alexdns1 commented 6 months ago

You are 100% right thank you