Всё нижеописанное делаю под рутом.
1. Установить CUDA toolkit
2. создаю отдельную папку
3. в этой папке вызываю: git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
4. устанавливаю библиотеки от vlc: cd nv-codec-headers && make install && cd ..
5. скачиваю исходники ffmpeg: git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/
6. ставл дополнительные пакеты: apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
7. перехожу в папку с ffmpeg'ом: cd ffmpeg/
8. запускаю конфигуратор: ./configure --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared
9. компилирую ffmpeg: make -j 4
10. устанавливаю ffmpeg в системе (по умолчанию в /usr/local/bin): make install
11. убеждаюсь, что /usr/local/lib есть в списке путей к библиотекам. Если нет, добавляю:
11.а cat "/usr/local/lib" > /etc/ld.so.conf.d/local_lib.conf
11.б ldconfig
12. проверяю поддержку железных акселераторов: /usr/local/bin/ffmpeg -hwaccels
Прирост производительности на видеокарте Nvidia 1650 составил приблизительно 290%
Полезные ссылки:
https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html