使用nvidia/cuda编译ffmpeg加载nvcuvid失败

使用nvidia/cuda编译ffmpeg加载nvcuvid失败,ffmpeg,cuda,nvidia,Ffmpeg,Cuda,Nvidia,我正在尝试编译支持使用nvidia GPU的ffmpeg二进制文件,我正在运行: os: ubuntu 18.04 nvidia driver: nvidia-driver-390 cat /usr/local/cuda-9.0/version.txt => CUDA Version 9.0.176 gpu: 2x 1080ti 如图所示,说明如下: 我首先发现错误错误:cuda已请求,但并非所有依赖项都得到满足:ffnvcodec,这是在的帮助下解决的。以下是摘要(make和make

我正在尝试编译支持使用nvidia GPU的ffmpeg二进制文件,我正在运行:

os: ubuntu 18.04
nvidia driver: nvidia-driver-390
cat /usr/local/cuda-9.0/version.txt => CUDA Version 9.0.176
gpu: 2x 1080ti
如图所示,说明如下:

我首先发现错误
错误:cuda已请求,但并非所有依赖项都得到满足:ffnvcodec
,这是在的帮助下解决的。以下是摘要(make和make install刚刚列出了要运行的命令):

完成后,我删除了ffmpeg文件夹,将其倾斜并在文件夹中运行:

./configure --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda-9.0/include --extra-ldflags=-L/usr/local/cuda-9.0/lib64
make -j 10
请注意,路径/usr/local/cuda-9.0确实包含include和lib64文件夹,这不会导致任何错误,只会导致弃用警告

现在,当使用绝对路径运行这个特定的ffmpeg二进制文件时,使用标志
-hwaccel cuvid
会导致:

~/Documents/ffmpeg-cuda/ffmpeg/ffmpeg -y -hwaccel cuvid -c:v h264_cuvid -vsync 0 -i ~/test.mp4 -vf "scale_npp=1920:1072" -vcodec h264_nvenc ~/out1.mp4 -vf scale_npp=1280:720 -vcodec h264_nvenc out2.mp4
这正是他们在网站上测试的结果:

[h264_cuvid @ 0x556348eb94c0] Cannot load cuvidGetDecodeStatus
[h264_cuvid @ 0x556348eb94c0] Failed loading nvcuvid.
我也在
/configure
之前添加了:
PKG\u CONFIG\u PATH=“/usr/local/lib/pkgconfig”
,但也没有什么不同

我做错了什么?我错过了什么重要的事情吗

通过ffmpeg repo,即“与Nvidias编解码器API接口所需的ffmpeg版本的头文件”,我大致了解了Linux需要“396.24或更新的驱动程序”这一事实。至少只有CUDA toolkit 9.2支持此驱动程序版本。所以,我已经忘记了我使用的命令顺序,但大致如下,以删除nvidia驱动程序和cuda软件

sudo apt remove cuda
sudo aot-get autoremove --purge cuda
cd /var
# Here I removed files like cuda-repo-9-0-local-xxx
cd /etc/apt/sources.list.d
# Here I removed files like cuda-9-0-xxx.list/save
现在使用GUI软件和更新,在“附加驱动程序”选项卡中,有时不允许我从390更改为396,因此我非常确定我首先更改为Nouveau display driver,重新启动计算机,然后选择396 NVIDIA驱动程序(开源),再次重新启动计算机,然后使用396,使用nvidia smi检查显示396.51。

然后我去下载了9.2 Linux Ubuntu 17.04.deb文件,然后:

wget https://developer.nvidia.com/compute/cuda/9.2/Prod2/local_installers/cuda-repo-ubuntu1710-9-2-local_9.2.148-1_amd64
mv cuda-repo-ubuntu1710-9-2-local_9.2.148-1_amd64 cuda-repo-ubuntu1710-9-2-local_9.2.148-1_amd64.deb
sudo dpkg -i --force-overwrite cuda-repo-ubuntu1710-9-2-local_9.2.148-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

现在,在安装了nvidia drvier版本396.51的CudaToolKit 9.2后,重新执行问题中的步骤,在使用
-hwaccel cuvid
运行ffmpeg时没有出现错误。顺便说一句,这有很大的不同

哇,谢谢你,我收到的来自ffmpeg的错误消息很容易让人误解。我在debian/unstable上,nvidia的396.52仍处于实验阶段,
apt安装-t实验nvidia内核dkms nvidia cuda dev
,重新启动,在启用cuda的情况下重建ffmpeg,您应该可以开始了。
sudo apt remove cuda
sudo aot-get autoremove --purge cuda
cd /var
# Here I removed files like cuda-repo-9-0-local-xxx
cd /etc/apt/sources.list.d
# Here I removed files like cuda-9-0-xxx.list/save
wget https://developer.nvidia.com/compute/cuda/9.2/Prod2/local_installers/cuda-repo-ubuntu1710-9-2-local_9.2.148-1_amd64
mv cuda-repo-ubuntu1710-9-2-local_9.2.148-1_amd64 cuda-repo-ubuntu1710-9-2-local_9.2.148-1_amd64.deb
sudo dpkg -i --force-overwrite cuda-repo-ubuntu1710-9-2-local_9.2.148-1_amd64.deb
sudo apt-key add /var/cuda-repo-9-2-local/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda