ubuntu16.04安装基于CUDA的完整ffmpeg

一、安装SDL
若想要使用ffplay,需要先安装SDL
到SDL官网下载其源码
将SDL2-2.0.10.tar.gz解压到主目录下,得到SDL2-2.0.10文件夹
cd SDL2-2.0.10
./configure –prefix=/usr/local
make
sudo make install
这样就安装好了SDL
二、安装ffmpeg
1.下载ffmpeg
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/
2. 完成一些必要库的安装
sudo apt-get install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
3. 下载并安装nv-codec-headers
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers && sudo make install && cd –
4. configure
./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系。
cd ffmpeg
./configure --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --enable-shared --enable-static --enable-gpl
–enable-libx264 --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64
5. make一下
make –j 8
6. 安装
sudo make install
7.检验是否安装成功
输入指令ffmpeg -version
可能出现的问题:ffmpeg:error while loading shared libraries:libavdevice.so.58:cannot open shared object file:No such file or directory
问题原因:ubuntu通过源码安装软件时未进行变量配置,找不到启动路径
解决方法:输入指令sudo vi /etc/ld.so.conf
在文件中添加路径:/usr/lib/x86_64-linux-gnu
#/usr/lib/x86_64-linux-gnu目录是ffmpeg的安装目录,根据个人不同安装目录修改
更新环境变量:sudo ldconfig
加入全局环境变量路径:sudo vim /etc/profile
在文件中加入以下内容:export PATH=”/usr/local/bin:$PATH”
然后保存并运行source /etc/profile
再次检查安装是否成功:ffmpeg-version
出现问题:ffmpeg:error while loading shared libraries:libnppig.so.10.0:cannot open shared object file:No such file or directory
问题原因:是因为ffmpeg未找到相关依赖包。
解决方法:先通过指令sudo find / -name libnppig.so.10.0得到该文件的目录地址。
然后通过指令sudo vi /etc/ld.so.conf将上述目录添加到最后一行并保存退出。
最后通过指令sudo ldconfig使配置生效。
然后出现新问题:/usr/local/cuda-10.0/lib64/libcudnn.so.7不是符号连接。
解决方法:sudo ln –sf /usr/local/cuda-10.0/lib64/libcudnn.so.7.6.3 /usr/local/cuda-10.0/lib64/libcudnn.so.7
然后通过指令sudo ldconfig使配置生效即可。
再次检查安装是否成功:ffmpeg –version
得到结果
ubuntu16.04安装基于CUDA的完整ffmpeg
8.查询解码器指令
ffmpeg –codecs | grep cuvid
ubuntu16.04安装基于CUDA的完整ffmpeg
9.查询解码器指令
ffmpeg –codecs | grep nvenc
ubuntu16.04安装基于CUDA的完整ffmpeg