错误:请求了cuvid,但并非所有依赖项都得到满足:cuda / ffnvcodec


18

我正在尝试在Debian 9.3上编译具有Nvidia Cuda支持的FFMPEG。参数,我在用什么:

--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所有的转码服务器上进行编译。


config.log到底怎么说?它将在ffbuild /
Gyan

Answers:


49

NVIDIA标头已从 FFmpeg代码库移至commit 27cbbbb中独立存储库。从提交消息:

外部头文件在ffmpeg代码库中不再受欢迎,因为它们增加了维护负担。但是,在NVidia的情况下,香草标头需要进行一些修改才能在ffmpeg中使用,因此我们仍然在单独的存储库中提供它们。

另外,从FFmpeg Wiki:HWAccelIntro

FFmpeg现在将其自身经过稍微修改的运行时加载程序用于与NVIDIA 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_PATHffnvcodec.pc则在运行configureFFmpeg 时声明指向该路径的指向。例如:

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

4

我遇到了类似的错误,但事实证明,这是由于缺少工具包配置引起的。在Ubuntu 16.04上,您可以运行

apt-get install pkgconf

并检查是否确实丢失了丢失的包裹:

pkgconf --list-all | grep package-name

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.