Nvidia FFmpeg安装说明

编译安装支持 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

  1. 设置 PKG_CONFIG_PATH

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

验证能找到 x264

pkg-config --libs x264

  1. 更新库缓存

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

相关推荐
Memory_荒年1 天前
FFmpeg:音视频界的“万能瑞士军刀”
ffmpeg
QJtDK1R5a2 天前
V4L2 vs GStreamer vs FFmpeg:Linux多媒体处理的三个层级
linux·运维·ffmpeg
AI视觉网奇4 天前
webrtc 硬编码
ffmpeg·webrtc
九转成圣4 天前
避坑指南:彻底解决 FFmpeg drawtext 烧录多行文本出现“方块(□)”乱码的终极方案
ffmpeg
bbq烤鸡4 天前
ffmpeg精确极速剪辑方案
ffmpeg
小镇学者5 天前
【python】 macos 安装ffmpeg 命令行工具
python·macos·ffmpeg
QMCY_jason5 天前
RK3588平台编译 ffmpeg-rockchip 使用rkmpp rkrga 进行硬件转码
ffmpeg
悢七5 天前
单机部署 OceanBase 集群
数据库·ffmpeg·oceanbase
yy我不解释6 天前
关于FFmpeg的安装使用(m3u8转码MP4)
ffmpeg
Chars-D6 天前
FFmpeg源码深度剖析:架构、模块与转码流水线
架构·ffmpeg