ERRORE: richiesto, ma non tutte le dipendenze sono soddisfatte: cuda / ffnvcodec


18

Sto cercando di compilare FFMPEG con il supporto di Nvidia Cuda, su Debian 9.3. Parametri, cosa sto 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 driver sono installati. Quando provo a configurare ffmpeg, dice:

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

Ffmpeg più recente mostrerà un messaggio simile, riformulato:

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

Non so assolutamente perché ho questo problema, perché sto compilando ffmpegsu tutti i nostri server di transcodifica.


Cosa dice config.log verso la fine? Sarà in ffbuild /
Gyan il

Risposte:


49

Le intestazioni NVIDIA sono state spostate dalla base di codice FFmpeg in un repository autonomo in commit 27cbbbb . Dal messaggio di commit:

Le intestazioni esterne non sono più benvenute nella base di codice ffmpeg perché aumentano il carico di manutenzione. Tuttavia, nel caso NVidia le intestazioni di vaniglia necessitano di alcune modifiche per essere utilizzabili in ffmpeg, quindi le forniamo ancora, ma in un repository separato.

Inoltre, da FFmpeg Wiki: HWAccelIntro :

FFmpeg ora utilizza il proprio caricatore di runtime leggermente modificato per le librerie correlate a nvidias CUDA / nvenc / nvdec. Se ricevi un errore dalla configurazione che si lamenta della mancanza di ffnvcodec, questo è ciò di cui hai bisogno.

Funziona Makefilecon una destinazione di installazione:

make install PREFIX=/usr

FFmpeg cercherà il suo pkg-configfile, chiamato ffnvcodec.pc. Assicurati che sia nel tuo PKG_CONFIG_PATH.

Per compilare le intestazioni FFmpeg NVIDIA ("ffnvcodec"):

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

Ora compila ffmpegcome al solito. Le intestazioni devono essere rilevate automaticamente. In caso contrario, dichiarare il PKG_CONFIG_PATHpuntamento al percorso in cui ffnvcodec.pcsi trova durante l'esecuzione configureper FFmpeg. Per esempio:

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

4

Ho riscontrato un errore simile ma si scopre che è stato causato dalla mancante configurazione del pacchetto di strumenti. Su Ubuntu 16.04 puoi eseguire

apt-get install pkgconf

e controlla se il pacchetto mancante è davvero mancato o meno:

pkgconf --list-all | grep package-name

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.