编译ffmpeg 并支持 NVIDIA 硬解码
1.简述
所谓硬件解码就是利用专用的硬件(比如说nvenc)进行解码 区别与利用通用计算单元进行解码(CPU,cuda)
2.所需要的 sdk
- cuda 11.1
- nvcc
- ffmpeg 5.1.2
- nv-codec-header 11.1.5.2 下载位置
4.安装ffnvcodec
省略 安装cuda 和nvcc 的方法 显卡驱动 最好大于430.1.4
- 安装 ffnvcodec
cd nv-codec-headers
sudo make install
5.编译ffmpeg
- 安装依赖
sudo apt update
sudo apt install build-essential yasm nasm cmake libx264-dev libx265-dev libvpx-dev libfdk-aac-dev libmp3lame-dev libopus-dev libass-dev libwebp-dev libssl-dev
- 进入文件夹 并配置选项
cd ffmpeg_5.1.2
sudo ./configure --enable-gpl --enable-libx264 --enable-libx265 --enable-libvpx --enable-libfdk-aac --enable-libmp3lame --enable-libopus --enable-libass --enable-libwebp --enable-openssl --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include --extra-ldflags=-L/usr/local/cuda/lib64 --disable-static --enable-shared --nvccflags="-gencode arch=compute_86,code=sm_86 -O2" --enable-cuda-nvcc --enable-cuvid --enable-nvenc --enable-shared
--enable-cuda-nvcc --enable-cuvid --enable-nvenc
其中这几个选项是重点 也最容易出错
sudo make - j 8
sudo make install
如果一切顺利已经完成。
6. 填坑
- 进入到配置ffmpeg环节如果出现
failed checking for nvcc
错误 首先进入 vim configue 修改