Net*_*eme 19 linux ffmpeg cuda
我正在尝试在 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
Run Code Online (Sandbox Code Playgroud)
安装了带有驱动程序的 Nvidia Cuda。当我尝试配置 ffmpeg 时,它说:
ERROR: cuvid requested, but not all dependencies are satisfied: cuda
Run Code Online (Sandbox Code Playgroud)
较新的 ffmpeg 将显示类似的、重新措辞的消息:
ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
Run Code Online (Sandbox Code Playgroud)
我完全不知道为什么我会遇到这个问题,因为我正在ffmpeg
我们所有的转码服务器上进行编译。
llo*_*gan 53
在提交27cbbbb 中,NVIDIA 标头已从FFmpeg 代码库移至独立存储库。从提交消息:
ffmpeg 代码库不再欢迎外部标头,因为它们增加了维护负担。然而,在 NVidia 的情况下,vanilla headers 需要一些修改才能在 ffmpeg 中使用,因此我们仍然提供它们,但在一个单独的存储库中。
此外,来自FFmpeg Wiki:HWAccelIntro:
FFmpeg 现在为 nvidias CUDA/nvenc/nvdec 相关库使用自己稍微修改过的运行时加载器。如果您在配置中遇到错误,抱怨缺少 ffnvcodec,这就是您所需要的。
它有一个
Makefile
安装目标:Run Code Online (Sandbox Code Playgroud)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
Run Code Online (Sandbox Code Playgroud)
现在ffmpeg
像往常一样编译。应该自动检测标题。如果不是PKG_CONFIG_PATH
,ffnvcodec.pc
则在运行configure
FFmpeg时声明指向所在路径。例如:
PKG_CONFIG_PATH="/path/to/lib/pkgconfig" ./configure
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了类似的错误,但事实证明,这是由于缺少工具包配置引起的。在 Ubuntu 16.04 上你可以运行
apt-get install pkgconf
Run Code Online (Sandbox Code Playgroud)
并检查丢失的包是否真的丢失了:
pkgconf --list-all | grep package-name
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
21702 次 |
最近记录: |