Ubuntu 18.04 安装ffmpeg(支持GPU硬件加速)

Ubuntu 18.04 安装FFmpeg (支持GPU加速),详细踩坑,可行

1:安装前请自行安装nvidia驱动和cudu cudnn

查看cuda版本

nvcc -V

在这里插入图片描述

2:安装nv-codec-hearers

官网: https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/

//Clone 
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git

//进入文件夹
cd nv-codec-headers 

//切换到指定版本,-b 新分支命名
//可使用 git tag 查看可选的版本,我选择的是n11.0.10.2
git checkout n11.0.10.2 -b nv-codec-headers
// 查看该分支版本支持的驱动版本是否满足自己驱动的版本要求(,若不满足则再次切换其他版本查看下图)
cat README

//满足版本要求后Install 
make
sudo make install && cd ..

## 通过pkg-config 验证ffnvcodec,如果找不到,把ffnvcodec.pc路径添加到PKG_CONFIG_PATH
pkg-config --modversion ffnvcodec

在这里插入图片描述

3:安装ffmpeg编码库

//Clone 
git clone https://code.videolan.org/videolan/x264.git

//Install 
cd x264
./configure --disable-asm --enable-shared --enable-pic

make
sudo make install
//也可通过以下命令直接安装
sudo apt-get install x264 libx264-dev

4:安装ffmpeg

//安装必要的依赖库(都下载吧,免得缺失,我就一直缺失libavfilter.pc文件)
sudo apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
sudo apt-get install -y autoconf automake build-essential git libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev
sudo apt install libavformat-dev
sudo apt install libavcodec-dev
sudo apt install libswresample-dev
sudo apt install libswscale-dev
sudo apt install libavutil-dev
sudo apt install libsdl1.2-dev


//Clone ffmpeg
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/

//enter
cd ffmpeg
export LD_LIBRARY_PATH={自己的路径}/ffmpeg/
source ~/.bashrc

//setting,注意,不要把指令写在extra指令之后,会报错,坑死我了
./configure --prefix=/usr/local/ffmpeg --disable-static --enable-shared --disable-avdevice --disable-sdl2 --disable-ffplay --disable-zlib --disable-lzma --enable-cuda --disable-doc --enable-gpl --enable-libx264 --enable-cuvid --enable-nonfree --enable-cuda-nvcc --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64

//install
make clean
make -j8
sudo make install

5:建立软连接

sudo ln -s /usr/local/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg
sudo ln -s /usr/local/ffmpeg/bin/ffprobe /usr/bin/ffprobe

增加安装目录的动态链接库

//临时增加:
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
//加入到配置文件
vim ~/.bashrc
//在文件最后新增一行,按i插入, esc+:wq 保存
export LD_LIBRARY_PATH=/usr/local/ffmpeg/lib:$LD_LIBRARY_PATH
// 立即生效
source ~/.bashrc

6 检查硬件加速

//检查硬件加速,有输出即正常
ffmpeg -hwaccels
//检查编码器和解码器
ffmpeg -codecs | grep cuvid
含有 h264_cuvid和h264_nvenc即可硬件加速

7:添加库连接

# 进入root用户执行
su
echo "/usr/local/ffmpeg/lib" >> /etc/ld.so.conf
ldconfig

8 :运行实例检查

//替换<input>为存在的某视频文件路径,<outpuy>为输出的视频文件路径,可以自定义
ffmpeg -hwaccel cuvid -c:v h264_cuvid -i <input> -c:v h264_nvenc -b:v 2048k -vf scale_npp=1280:-1 -y <output>

9:卸载重装

卸载
删除相应的软链接/usr/bin/ffmpeg和/usr/bin/ffprobe,编译目录/usr/local/ffmpeg。清空环境变量中修改的地方并更新。

重装
当需要更新或者回退,以及需要额外增加库支持时:
①删除ffmpeg-4.2.2/ffbuild目录下的带config字段的文件,rm config
②删除相应的软链接/usr/bin/ffmpeg和/usr/bin/ffprobe,编译目录/usr/local/ffmpeg。
③重新编译、安装并新建软链接。
④配置ffmpeg依赖环境/etc/ld.so.conf并更新环境变量。

参考:https://blog.csdn.net/TracelessLe/article/details/107362505

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值