编译安装支持 NVIDIA GPU 加速的 FFmpeg
FFmpeg是一款开源的音视频编解码工具,同时也是一套音视频编码开发套件。它提供了丰富的音视频处理功能,包括多种媒体格式的封装和解封装、多种音视频编码、多种协议的流媒体、多种格式转换、多种采样率转换和多种码率转换等。
FFmpeg框架包含了多种插件模块,如封装与解封装的插件、编码与解码的插件等。通过使用Python,可以轻松实现批量处理视频转码、加水印等操作

这个 FFmpeg 启用了 CUDA/NVENC 硬件加速,需要从源码编译。
一、安装依赖
基础编译工具
yum install -y autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel
额外依赖
yum install -y openssl-devel
二、安装 nv-codec-headers
cd /usr/local/src
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make install
三、安装 nasm
yum安装版本会低可以编译安装
cd /usr/local/src
wget https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
tar xjf nasm-2.15.05.tar.bz2
cd nasm-2.15.05
./configure --prefix=/usr/local
make -j$(nproc)
make install
验证
nasm -v
应显示: NASM version 2.15.05
四 、安装 x264
cd /usr/local/src
git clone --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
./configure --enable-shared --enable-static
make -j$(nproc)
make install
五 、编译 FFmpeg
git clone https://git.ffmpeg.org/ffmpeg.git
这个会比较慢会失败可以用下面的国内源
cd /usr/local/src
使用 Gitee 镜像
git clone https://gitee.com/mirrors/ffmpeg.git
cd ffmpeg
git checkout b6c4332
HEAD is now at b6c4332...
表示已成功切换到 b6c4332 这个版本
配置(启用 CUDA/NVENC)
./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 --enable-gpl --enable-libx264 --enable-openssl --enable-protocols --enable-protocol=https --prefix=/usr/local/ffmpeg
--enable-libnpp 低版本能会报错 7.1之后可以,用不用自己评估下
报错:

1.确认 x264 已安装
检查库文件
ls /usr/local/lib/libx264*
检查 pkg-config 文件
ls /usr/local/lib/pkgconfig/x264.pc
- 设置 PKG_CONFIG_PATH
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
验证能找到 x264
pkg-config --libs x264
- 更新库缓存
echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf
ldconfig
编译安装
make -j$(nproc)
make install
六 、配置环境变量
复制cat << 'EOF' >> ~/.bashrc
FFmpeg
export PATH=/usr/local/ffmpeg/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:/usr/local/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/ffmpeg/lib/pkgconfig:$PKG_CONFIG_PATH
EOF
source ~/.bashrc
更新动态库
echo "/usr/local/ffmpeg/lib" >> /etc/ld.so.conf.d/ffmpeg.conf
echo "/usr/local/lib" >> /etc/ld.so.conf.d/ffmpeg.conf
ldconfig
七 、验证安装
查看版本
ffmpeg -version
检查 NVIDIA 编码器
ffmpeg -encoders | grep nvenc
应该显示:
V..... h264_nvenc NVIDIA NVENC H.264 encoder
V..... hevc_nvenc NVIDIA NVENC HEVC encoder
八 、测试 GPU 加速
复制# 使用 GPU 转码测试
ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc -preset fast output.mp4