Cannot load libnvcuvid.so.1


[h264_cuvid @ 0x5579a46f5700] Cannot load libnvcuvid.so.1
[h264_cuvid @ 0x5579a46f5700] Failed loading nvcuvid.

这个错误信息表明在使用FFmpeg进行视频转换时,库文件libnvcuvid.so.1未能加载成功。libnvcuvid.so.1是NVIDIA提供的用于硬件加速的视频解码库。要解决这个问题,您可以尝试以下步骤:

  1. 确认系统中已安装NVIDIA驱动和CUDA Toolkit
    确保系统中安装了NVIDIA的驱动和CUDA Toolkit,并且版本兼容。您可以通过以下命令检查CUDA的安装情况:

    1
    nvcc --version

    如果没有安装,可以参考NVIDIA的官方文档进行安装。

  2. 安装NVIDIA Video Codec SDK
    libnvcuvid.so.1是NVIDIA Video Codec SDK的一部分。您需要下载并安装该SDK。可以从NVIDIA开发者网站下载。

  3. 设置环境变量
    确保LD_LIBRARY_PATH环境变量包含NVIDIA库的路径。例如,如果库文件位于/usr/local/cuda/lib64,您可以通过以下命令添加路径:

    1
    export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
  4. 验证库文件是否存在
    确保系统中确实存在libnvcuvid.so.1文件。您可以使用以下命令进行检查:

    1
    locate libnvcuvid.so.1

    如果文件不存在,您可能需要重新安装相关的CUDA工具包。

  5. 重建FFmpeg
    如果以上步骤都未能解决问题,您可以尝试重新编译FFmpeg,确保在配置时正确包含了NVIDIA支持。您可以使用以下配置选项:

    1
    2
    3
    ./configure --enable-nvenc --enable-cuda --enable-cuvid --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
    make
    sudo make install

通过这些步骤,应该能够解决libnvcuvid.so.1未能加载的问题。