GALAT: cuvid diminta, tetapi tidak semua dependensi dipenuhi: cuda / ffnvcodec

18

Saya mencoba untuk mengkompilasi FFMPEG dengan dukungan Nvidia Cuda, pada Debian 9.3. Parameter, apa yang saya gunakan:

--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 dengan driver diinstal. Ketika saya mencoba mengkonfigurasi ffmpeg, dikatakan:

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

Ffmpeg yang lebih baru akan menampilkan pesan yang serupa dan diucapkan kembali:

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

Saya benar-benar tidak tahu mengapa saya mengalami masalah ini, karena saya mengkompilasi ffmpegsemua server trans-coding kami.

Netheme
sumber
Apa yang config.log katakan menjelang akhir? Ini akan di ffbuild /
Gyan

Jawaban:

49

Header NVIDIA dipindahkan dari basis kode FFmpeg ke repositori mandiri dalam komit 27cbbbb . Dari pesan komit:

Header eksternal tidak lagi diterima di basis kode ffmpeg karena meningkatkan beban perawatan. Namun, dalam kasus NVidia header vanilla memerlukan beberapa modifikasi agar dapat digunakan di ffmpeg karena itu kami masih menyediakannya, tetapi dalam repositori terpisah.

Juga, dari FFmpeg Wiki: HWAccelIntro :

FFmpeg sekarang menggunakan runtime-loader yang sedikit dimodifikasi untuk pustaka terkait nvidias CUDA / nvenc / nvdec. Jika Anda mendapatkan kesalahan karena mengkonfigurasi mengeluhkan ffnvcodec yang hilang, inilah yang Anda butuhkan.

Ini berfungsi Makefiledengan target instalasi:

make install PREFIX=/usr

FFmpeg akan mencari pkg-configfile -nya , bernama ffnvcodec.pc. Pastikan itu ada di Anda PKG_CONFIG_PATH.

Untuk mengkompilasi header FFmpeg NVIDIA ("ffnvcodec"):

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

Sekarang kompilasi ffmpegseperti biasa. Header harus terdeteksi secara otomatis. Jika tidak maka nyatakan PKG_CONFIG_PATHmenunjuk ke jalur di mana ffnvcodec.pcberada saat menjalankan configureFFmpeg. Sebagai contoh:

PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure
llogan
sumber
4

Saya mengalami kesalahan yang serupa tetapi ternyata, itu disebabkan oleh konfigurasi paket alat yang hilang. Di Ubuntu 16.04 Anda dapat menjalankan

apt-get install pkgconf

dan periksa apakah paket yang hilang benar-benar terlewatkan atau tidak:

pkgconf --list-all | grep package-name
bingleyli
sumber