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

相关推荐
WF_YL8 小时前
如何删除 Oracle 过期 key / 数据,删除目的的key
ffmpeg
浩瀚之水_csdn14 小时前
avcodec_find_decoder函数详解
ffmpeg
浩瀚之水_csdn4 天前
avcodec_parameters_copy详解
linux·人工智能·ffmpeg
不吃鱼的猫7487 天前
【ffplay 源码解析系列】02-核心数据结构详解
c++·ffmpeg·音视频
不吃鱼的猫7488 天前
【ffplay 源码解析系列】01-开篇-ffplay整体架构与启动流程
c++·架构·ffmpeg·音视频
REDcker9 天前
FFmpeg开发者快速入门
ffmpeg
不吃鱼的猫7489 天前
【从零手写播放器:FFmpeg 音视频开发实战】04-封装格式与多媒体容器
c++·ffmpeg·音视频
REDcker11 天前
FFmpeg完整文档
linux·服务器·c++·ffmpeg·音视频·c·后端开发
硬汉嵌入式11 天前
QEMU & FFmpeg作者Fabrice Bellard推出MicroQuickJS,一款面向嵌入式系统JavaScript引擎,仅需10K RAM
javascript·ffmpeg·microquickjs