如何在 ubuntu 中安装/编译 NVENC?

Fas*_* OS 20 nvidia codecs compiling ffmpeg software-installation

我在本文档中看到了对 nvidia NVENC 的支持,但它似乎令人困惑,一步一步来?或带有 ffmpeg-nvenc 的 PPA 用于 ubuntu?

http://developer.download.nvidia.com/compute/redist/ffmpeg/1511-patch/FFMPEG-with-NVIDIA-Acceleration-on-Ubuntu_UG_v01.pdf

and*_*.46 26

与以往一样,FFmpeg 的持续开发会多次改变目标,这对于 nvenc 和 FFmpeg 来说当然是正确的。经历了3个阶段:

  1. 滚动你自己的:在 2016 年 8 月 27 日之前,有必要追踪你自己的标题来构建 nvenc。艰巨而令人困惑。
  2. 内置于源代码中:2016 年 8 月 27 日看到所需的标头作为 FFmpeg 源代码的一部分被合并,只需要能够从 git 编译 FFmpeg 源代码,或者此时使用从 git 中删除的“发布”版本。
  3. 使用 nv-codec-headers:2018 年 2 月 26 日,从 FFmpeg 源删除了 NVidia 标头。创建了一个单独的 git 存储库来保存对这些标头的持续工作。目前,必须安装这些头文件以及来自 git 的 FFmpeg 才能访问 nvenc 和朋友。

需要两个步骤:

1. 安装 nv-codec-headers 包

类似于以下终端命令的东西就足够了:

sudo apt-get install make git
mkdir $HOME/nv-codec-headers_build && cd $HOME/nv-codec-headers_build
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make && sudo make install
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因您改变主意并希望完全删除已安装的文件以及构建目录,只需运行以下两个终端命令:

sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build
Run Code Online (Sandbox Code Playgroud)

并且您的系统已被清理。但是,如果您希望继续使用以下步骤:

2.编译FFmpeg

使用这个经过充分测试的指南:

nv-codec-headers会被自动地识别(无需额外./configure需要的选项)和nvenc将成功构建。

测试:

我在 Bionic Beaver LTS 上对此进行了测试,结果是:

andrew@ilium:~$ ffmpeg -encoders 2>/dev/null | grep nvenc
 V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)
andrew@ilium:~$
Run Code Online (Sandbox Code Playgroud)

如果您看到与上图类似的图片,并且您拥有受支持的显卡,那么您就对了 :)

笔记:

  • 最新版本对应于 Video Codec SDK 版本 11.0.10,需要 NVidia 驱动程序版本 455.28 或更高版本。
  • 旧版本:现在有一个 nv-codec-headers 的自动化 github 副本,它也创建了非常适合使用旧版本头文件的 tarball 。如果您希望标头与您无法或不愿意更新的旧版 NVidia 驱动程序同步,那就太好了。
  • FFmpeg 硬件加速指南:FFmpeg Wiki硬件加速指南,通常使用 FFmpeg,一个用于编译和使用 nvenc的规范部分...


小智 5

根据 Focal 的变更日志,现在包含了 nv-codec-headers 。

ffmpeg (7:4.2.2-1ubuntu1) 焦点;紧急=中等

  • 使用外部 nv-codec-headers 构建 NVENC 加速视频编码。(LP: #1810649)

    • Debian/控制:
      • 添加 BD libffmpeg-nvenc-dev
    • Debian/规则:
      • 仅为 amd64 添加 --enable-nvenc

    -- Martin Wimpress 2020 年 3 月 7 日星期六 08:39:35 +0000