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

相关推荐
可乐鸡翅yeah_17 小时前
混合内容 Mixed‑Content 安全策略,HLS HTTPS 页面加载 HTTP 资源排错实战
运维·ffmpeg·音视频·媒体·m3u8
刘广睿2 天前
视频导出为什么发灰?色彩空间与色彩范围(BT.601/709/2020)的 ffmpeg 转换实战
ffmpeg·音视频·视频处理·色彩空间·素材管理
yivifu2 天前
精选FFmpeg 实用音频视频转换命令集
ffmpeg·音视频转换
风哥2号5 天前
数据库教程FGMT02‑生产环境Linux+Oracle19c安装配置与项目实战
linux·数据库·ffmpeg
Bruce_Liuxiaowei6 天前
录屏片段无损合并:从 ffmpeg concat 原理到 Python 自动化脚本
python·ffmpeg·自动化
工具派7 天前
口播视频怎么自动剪掉冷场?视频静音删除的阈值实测
ffmpeg·音视频·视频
❀͜͡傀儡师8 天前
移动端 360° 商品展示方案:从 20MB 雪碧图到 800KB 丝滑视频
ffmpeg·webgl·sprite
2501_930472448 天前
深度复盘|数据库迁移实战(上):腾讯云助手解析慢查询日志,定位索引缺失与语法不兼容
数据库·阿里云·ffmpeg·云计算·腾讯云·aws
我就是DaLing呀!8 天前
flutter + ffmpeg_kit_extended_flutter 大视频合并下载
flutter·ffmpeg·音视频
可乐鸡翅yeah_10 天前
多浏览器 HLS 兼容性差异排查,Chrome、Firefox、Safari 表现不一致定位
chrome·ffmpeg·音视频·firefox·safari·m3u8