FFmpeg编译with NVIDIA硬件加速

FFmpeg编译with NVIDIA硬件加速

安装NVIDIA显卡驱动

下载对应显卡型号驱动

lspci | grep VGA

https://www.nvidia.com/Download/index.aspx

卸载旧的驱动

sudo apt-get purge nvidia*

//禁用linux内核自带nouveau nvidia驱动

editor /etc/modprobe.d/blacklist-nouveau.conf

//在文件blacklist-nouveau.conf中添加以下内容:
blacklist nouveau
options nouveau modeset=0

// 更新初始化
update-initramfs -u

//修改后需要重启系统。确认下Nouveau是否已经被禁用,使用命令:
lsmod | grep nouveau

安装驱动

service lightdm stop
./NVIDIA-Linux-x86_64-375.26.run
service lightdm start

// 安装完成并重启后确认下驱动是否工作正常
cat /proc/driver/nvidia/version
nvidia-smi

// 解码库
sudo ld -lnvcuvid
// 编码库
sudo ld -lnvidia_encode

安装CUDA

https://developer.nvidia.com/cuda-toolkit-archive
安装完成后,在/usr/local/cuda目录下会生成include头文件和lib64库文件

// nvcc是CUDA编译器
$ nvcc -V

安装NVIDIA VIDEO CODEC SDK

https://developer.nvidia.com/video-codec-sdk-archive

// 编译sample
cd Sample
make

编译FFmpeg

// 安装yasm
sudo apt-get install yasm

// NVIDIA VIDEO CODEC SDK headers
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
make
sudo make install

git clone https://git.ffmpeg.org/ffmpeg.git
./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
make
sudo make install

// 查看硬解码器
ffmpeg -codecs | grep cuvid

// 查看硬编码器
ffmpeg -codecs | grep nvenc
  • 此外FFmpeg采用linux c编写,只提供了Makefile的生成方式,在Windows下编译需要先安装MinGW+MSYS环境

参考资料

最后附上百度网盘NVIDIA 驱动、CUDA、CUDNN分享地址

猜你喜欢

转载自blog.csdn.net/GG_SiMiDa/article/details/81303876