ОШИБКА: запрашивается cuvid, но не все зависимости удовлетворены: cuda / ffnvcodec

18

Я пытаюсь скомпилировать FFMPEG с поддержкой Nvidia Cuda на Debian 9.3. Параметры, что я использую:

--enable-cuda --enable-cuvid --enable-nvenc --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --enable-gpl --enable-libx264 --disable-x86asm --enable-libx265 --enable-libfdk-aac --enable-nonfree

Nvidia Cuda с драйверами установлены. Когда я пытаюсь настроить ffmpeg, он говорит:

ERROR: cuvid requested, but not all dependencies are satisfied: cuda

Более новый ffmpeg покажет похожее переформулированное сообщение:

ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec

Я абсолютно не знаю, почему у меня такая проблема, потому что я компилирую ffmpegна всех наших серверах транскодирования.

Netheme
источник
Что config.log говорит в конце? Это будет в ffbuild /
Gyan

Ответы:

49

Заголовки NVIDIA были перемещены из кодовой базы FFmpeg в автономный репозиторий в коммите 27cbbbb . Из сообщения фиксации:

Внешние заголовки больше не приветствуются в базе кода ffmpeg, поскольку они увеличивают нагрузку на обслуживание. Однако в случае NVidia ванильные заголовки нуждаются в некоторых модификациях, чтобы их можно было использовать в ffmpeg, поэтому мы все еще предоставляем их, но в отдельном репозитории.

Также из FFmpeg Wiki: HWAccelIntro :

FFmpeg теперь использует собственный слегка измененный загрузчик времени выполнения для библиотек, связанных с nvidias CUDA / nvenc / nvdec. Если вы получили ошибку от configure, жалующуюся на отсутствие ffnvcodec, это то, что вам нужно.

Работает Makefileс целью установки:

make install PREFIX=/usr

FFmpeg будет искать свой pkg-configфайл с именем ffnvcodec.pc. Убедитесь, что это в вашем PKG_CONFIG_PATH.

Чтобы скомпилировать заголовки FFmpeg NVIDIA ("ffnvcodec"):

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make
sudo make install

Теперь скомпилируйте ffmpegкак обычно. Заголовки должны быть автоматически обнаружены. Если нет, то объявите PKG_CONFIG_PATHуказатель на путь, где ffnvcodec.pcнаходится при запуске configureдля FFmpeg. Например:

PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure
llogan
источник
4

Я столкнулся с подобной ошибкой, но, как оказалось, она была вызвана отсутствием конфигурации пакета инструментов. На Ubuntu 16.04 вы можете запустить

apt-get install pkgconf

и проверьте, действительно ли пропущенный пакет пропущен или нет:

pkgconf --list-all | grep package-name
bingleyli
источник
-1

https://github.com/FFmpeg/FFmpeg/commit/27cbbbb33f259de7c795d2b75edf7b240f0f82e6

Я обнаружил, что этот код коммита произошла ошибка. Использовать код предыдущего коммита

git clone https://github.com/FFmpeg/FFmpeg.git

git checkout 7414d0bda7763f9bd69c26c068e482ab297c1c96

git reset --hard

김만수
источник
Это ограничит вас застреванием с фиксацией на 7414d0bнеопределенный срок. Просто скачайте и установите заголовки NVIDIA перед компиляцией ffmpeg.
Llogan