一定要安装 CUDA Toolkit 吗?
作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音
编译 FFmpeg CUDA Filter 一定要安装 CUDA Toolkit 吗?
答:不一定
FFmpeg 对于 CUDA Toolkit 的依赖其实是非常小的。前文 说过 FFmpeg 的 nvdec/nvenc 硬件编解码不需要 CUDA Toolkit,只需要 nv-codec-headers。
FFmpeg 用的是 CUDA Driver API,没有用到 CUDA Runtime API,也就是没用到 CUDA Toolkit 里的 cudart64_101.dll 库。
CUDA Toolkit 是一个很丰富的工具库,但 FFmpeg 只用到里面的 两个东西
- nvcc 编译器,负责编译
vf_overlay_cuda.cu,vf_scale_cuda.cu,vf_thumbnail_cuda.cu - npp 库,
vf_scale_npp.c用了 npp 库 里面的函数
一般情况下 scale_cuda 可以替代 scale_npp。而 clang/llvm 编译器也可以用来编译 vf_overlay_cuda.cu 等 CUDA 代码。
所以如果你用不着 scale_npp,可以用 clang/llvm 替换 gcc 编译器,这样就不需要安装 CUDA Toolkit 了。