我在本文档中看到了对nvidia NVENC的支持,但似乎有些步骤,令人困惑?或与ffmpeg-nvenc一起在ubuntu上使用PPA?
我在本文档中看到了对nvidia NVENC的支持,但似乎有些步骤,令人困惑?或与ffmpeg-nvenc一起在ubuntu上使用PPA?
Answers:
与FFmpeg一样,持续发展会多次改变目标的发布时间,nvenc和FFmpeg的确如此。分为三个阶段:
需要两个步骤:
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
如果由于某种原因您改变了主意并希望完全删除已安装的文件以及构建目录,只需运行以下两个终端命令:
sudo rm -v /usr/local/{lib/pkgconfig/ffnvcodec.pc,include/ffnvcodec/*.h}
rm -rfv $HOME/nv-codec-headers_build
并且您的系统已被清理。但是,如果您希望继续使用以下步骤:
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:~$
而且,如果您看到与上述类似的图片,并且拥有受支持的图形卡,那么您就去对了:)
笔记:
@ andrew.46您的回应很好,谢谢。我的声誉低于最低要求,无法发表评论。如果可能,请使用以下信息扩大您的答复。
如果需要还原到的早期版本nv-codec-headers
,请从https://github.com/FFmpeg/nv-codec-headers/releases下载并编译较早的版本。
如果ffmpeg
根据最新nv-codec-headers
版本进行编译,则可能有必要,但是您的图形驱动程序的版本尚未处理所需的最低CUDA API版本nv-codec-headers
。症状是ffmpeg
将无法对视频流进行代码转换。就我而言,nv-codec-headers
需要CUDA API 9.1,而nvidia-driver
我发布(测试)的最新版本仍是使用9.0的版本。
nv-codec-headers
比直接从Nvidia下载最新的驱动程序并在发行版本的更新机制之外进行构建,恢复到早期版本可能更安全。