ffmpeg с поддержкой cuda
В linux для получения всех желаемых плюшек ffmpeg приходится компилировать самому.
Я пользуюсь вот этим туториалом от NVIDIA.
Задача: включить поддержку аппаратного кодирования и декодирования CUDA и возможность накладывния текста на видео.
В процессе компиляции возникли некоторые подводные камни.
Первый, это ошибка:
ERROR: failed checking for nvcc.
Проверка наличия NVCC показывает, что он на месте.
whereis nvcc
nvcc: /usr/local/bin/nvcc
Видим, что он на месте. Долгий гуглеж привел к решению проблемы. Не прописаны пути к CUDA для компилятора. Решается все их добавлением.
export CPATH=/usr/local/cuda/targets/x86_64-linux/include:$CPATH
export LD_LIBRARY_PATH=/usr/local/cuda/targets/x86_64-linux/lib:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda/bin:$PATH
Далее для добавления возможности накладывать текст на видео мы добавляем к команде configure параметр —enable-libfreetype
./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 --enable-libfreetype
Получаем следующую ошибку:
ERROR: freetype2 not found using pkg-config
Не установлен libfreetype. Устанавливаем.
apt install libfreetype6-dev libfontconfig1-dev xclip
Всё. После этого все собралось и установилось как надо.