ERROR: se solicitó cuvid, pero no se satisfacen todas las dependencias: cuda/ffnvcodec

ERROR: se solicitó cuvid, pero no se satisfacen todas las dependencias: cuda/ffnvcodec

Estoy intentando compilar FFMPEG con soporte para Nvidia Cuda, en Debian 9.3. Parámetros, lo que estoy usando:

--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 con controladores instalados. Cuando intento configurar ffmpeg, dice:

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

El ffmpeg más nuevo mostrará un mensaje similar redactado nuevamente:

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

No sé en absoluto por qué tengo este problema, porque estoy compilando ffmpegen todos nuestros servidores de transcodificación.

Respuesta1

Los encabezados de NVIDIA se sacaron del código base de FFmpeg a unrepositorio independienteen compromiso27cbbbb. Del mensaje de confirmación:

Los encabezados externos ya no son bienvenidos en el código base de ffmpeg porque aumentan la carga de mantenimiento. Sin embargo, en el caso de NVidia, los encabezados básicos necesitan algunas modificaciones para poder usarse en ffmpeg, por lo que aún los proporcionamos, pero en un repositorio separado.

Además, desdeWiki FFmpeg: Introducción a HWAccel:

FFmpeg ahora usa su propio cargador de tiempo de ejecución ligeramente modificado para bibliotecas relacionadas con nvidias CUDA/nvenc/nvdec. Si recibe un error de configuración quejándose de que falta ffnvcodec,estees lo que necesitas.

Tiene un funcionamiento Makefilecon un objetivo de instalación:

make install PREFIX=/usr

FFmpeg buscará su pkg-configarchivo, llamado ffnvcodec.pc. Asegúrate de que esté en tu PKG_CONFIG_PATH.

Para compilar los encabezados FFmpeg NVIDIA ("ffnvcodec"):

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

Ahora compila ffmpegcomo de costumbre. Los encabezados deben detectarse automáticamente. De lo contrario, declare que PKG_CONFIG_PATHapunta a la ruta donde ffnvcodec.pcse encuentra cuando se ejecuta configureFFmpeg. Por ejemplo:

PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure

Respuesta2

Encontré un error similar, pero resulta que fue causado por la falta de configuración del paquete de herramientas. En Ubuntu 16.04 puedes ejecutar

apt-get install pkgconf

y verifique si el paquete que falta realmente se perdió o no:

pkgconf --list-all | grep package-name

Respuesta3

Esto puede surgir debido a una discrepancia de versión entre nv-codec-headers y FFmpeg. Causa: Seguí instrucciones específicas que fijaron nv-codec-headers en n8.2.15.8 pero dejé FFmpeg en maestro.

Comenzar con la etiqueta n4.4 FFmpeg requiere la CUVIDAV1PICPARAMSestructura. Esto solo se encuentra en dynlink_cuviddec.h de nv-codec-headers que comienzan con la etiqueta n11.0.10.0.

Configuré/compilé exitosamente con nv-codec-headers n11.1.5.1y FFmpeg n5.1.2para CUDA 11.4 en una imagen nvidia-docker de Ubuntu 18.04LTS (argumentos adicionales/env. vars. necesarios:
PKG_CONFIG_PATH="<path_to_ffnvcodec.pc_folder>"y --nvccflags="-gencode arch=compute_52,code=sm_52 -O2")

Respuesta4

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

Encontré que este código de confirmación produce un error. Usar código de confirmación anterior

clon de githttps://github.com/FFmpeg/FFmpeg.git

git pago 7414d0bda7763f9bd69c26c068e482ab297c1c96

reinicio de git --duro

información relacionada