ffmpeg编译支持nvidia-GPU解码

编译ffmpeg

在对视频数据进行转码时,通常使用 FFmpeg 库 。硬件加速极大地提高了工作流的性能。图 2 显示了 FFmpeg 转换过程的不同元素

image.png

FFmpeg 通过 h264_cuvidhevc_cuvidh264_nvenchevc_nvenc 模块支持硬件加速解码和编码。从源代码构建时激活对硬件加速的支持需要一些额外的步骤:

  • 克隆 FFmpeg git 存储库 https://git.ffmpeg.org/ffmpeg.git
  • 从 NVIDIA 网站 下载并安装兼容的驱动程序
  • 下载并安装 CUDA 工具箱
  • 克隆 nv-codec-headers 存储库 并仅使用此存储库作为头进行安装: make install
  • 使用以下命令配置 FFmpeg (使用正确的 CUDA 库路径):
./configure --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
  • 使用多个进程进行构建,以提高构建速度并抑制过度输出: make -j -s

注:编译的结果中没有ffplay

可能是由于SDL的原因,

  • 下载SDL,编译安装
  • 重新编译ffmpeg,注意使用 --enable-ffplay
./configure --enable-ffplay --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64

参考链接

  1. https://developer.nvidia.com/zh-cn/blog/nvidia-ffmpeg-transcoding-guide/
  2. https://blog.csdn.net/cjtstrive/article/details/106393555

你可能感兴趣的:(ffmpeg编译支持nvidia-GPU解码)