Loading... @[toc] # 1. 安装NVIDIA驱动 1. 安装依赖包 ```bash sudo apt install -y ubuntu-drivers-common ``` 2. 编辑 `/etc/modprobe.d/blacklist-nouveau.conf `文件,添加以下内容: ```bash blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off ``` 3. 关闭nouveau ```bash echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf ``` 4. 重新生成内核并重启 ```bash sudo update-initramfs -u sudo reboot ``` 5. 重启后验证 ```bash lsmod | grep nouveau ``` 如果没有输出,则禁用成功; 6. 查找推荐驱动 ```bash ubuntu-drivers devices ``` 输出如下:  7. 安装推荐驱动 ```bash sudo apt install -y nvidia-driver-535-server ``` 安装成功后重启执行 ``nvidia-smi``输出如下则证明驱动安装成功,**注意**这里的 ``CUDA Version``为最高安装版本,并非已安装版本  # 2. 安装CUDA&NV-CODEC ## 2.1 安装CUDA 去[NVIDIA官网](https://developer.nvidia.com/cuda-toolkit-archive)直接下载不高于 ``nvidia-smi``显示的版本,我们安装12.0版本,按照官网描述安装   ```bash wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/12.0.0/local_installers/cuda-repo-ubuntu2004-12-0-local_12.0.0-525.60.13-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu2004-12-0-local_12.0.0-525.60.13-1_amd64.deb sudo cp /var/cuda-repo-ubuntu2004-12-0-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cuda ``` 安装成功后将以下内容加到 ``/etc/profile``文件 ```bash export PATH=$PATH:/usr/local/cuda-12.0/bin/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.0/lib64 ``` 执行 ``source /etc/profile``后执行 ``nvcc --version``输出如下内容则证明安装成功 ```bash nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2022 NVIDIA Corporation Built on Mon_Oct_24_19:12:58_PDT_2022 Cuda compilation tools, release 12.0, V12.0.76 Build cuda_12.0.r12.0/compiler.31968024_0 ``` ## 2.2 安装NV-CODEC 因为我们cuda安装的是12.0版本,因此执行以下指令安装 ``ffnvcodec``,参考[NVIDIA官网](https://docs.nvidia.com/video-technologies/video-codec-sdk/12.0/ffmpeg-with-nvidia-gpu/index.html) ```bash git clone -b sdk/12.0 git@github.com:FFmpeg/nv-codec-headers.git cd nv-codec-headers && sudo make install && cd – ``` # 3. 编译ffmpeg ## 3.1 安装依赖 ```bash sudo apt-get -y install \ build-essential \ pkg-config \ libtool \ automake \ yasm \ nasm \ cmake \ libtool \ libc6 \ libc6-dev \ unzip \ wget \ libnuma1 \ libnuma-dev \ libx264-dev \ libx265-dev \ libssl-dev \ librtmp-dev \ libsrt-dev \ libfreetype6-dev ``` ## 3.2 下载源码安装依赖 前往[ffmpeg官网](https://ffmpeg.org/download.html)下载ffmpeg源码,最好下载5以上版本,我用4.x版本编译时候有莫名报错,换到5版本一切正常;我们以 ``ffmpeg-5.1.6``版本为例,解压后进入ffmpeg源码目录,执行以下命令 ```bash ./configure \ --prefix=$(pwd)/install \ --extra-cflags="-I/usr/local/cuda/include" \ --extra-ldflags="-L/usr/local/cuda/lib64" \ --enable-shared \ --enable-static \ --extra-libs=-lstdc++ \ --enable-gpl \ --enable-version3 \ --enable-libfreetype \ --enable-libx264 \ --enable-libx265 \ --enable-openssl \ --enable-librtmp \ --enable-libsrt \ --enable-demuxer=rtsp \ --enable-muxer=rtsp \ --enable-cuda-nvcc \ --enable-libnpp \ --enable-cuda \ --enable-cuvid \ --enable-nvenc \ --enable-nvdec \ --enable-nonfree ``` 成功后会输出如下信息:  ``` 执行 ``` ``make -j$(nproc) && make install``即可在源码目录下生成 ``install``目录; ## 3.3 验证 依然修改 ``/etc/profile``将ffmpeg加入环境变量,大致效果如下: ```bash export PATH=$PATH:/usr/local/cuda-12.0/bin/:/home/ffmpeg-5.1.6/install/bin/ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.0/lib64:/home/ffmpeg-5.1.6/install/lib ``` 执行 ``source /etc/profile``生效环境变量,执行以下命令验证 ```bash ffmpeg -encoders | grep nvenc ``` 输出如下内容,则证明成功 ```bash V....D h264_nvenc NVIDIA NVENC H.264 encoder (codec h264) V....D hevc_nvenc NVIDIA NVENC hevc encoder (codec hevc) ``` # 4. 使用 ```bash # H.264加速编码 ffmpeg -i input.mp4 -c:v h264_nvenc -b:v 2M -g 30 -c:a copy output_gpu_h264.mp4 # HEVC/H.265加速编码 ffmpeg -i input.mp4 -c:v hevc_nvenc -b:v 2M -g 30 -c:a copy output_gpu_h265.mp4 ``` 最后修改:2025 年 12 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏