
FFmpeg是一款免费开源的视频转换软件,适用于Linux和类Unix系统。在Ubuntu、Debian等Linux发行版上,为了使用NVIDIA的硬件编码功能,我们需要进行相应的配置和安装。接下来,我会为你介绍一下如何在Ubuntu或Debian Linux上安装支持NVIDIA GPU硬件加速的FFmpeg。
我在Ubuntu Linux 20.04 LTS系统上进行了测试。我安装了NVIDIA驱动版本460和CUDA版本10.1,GPU型号为GeForce GTX 1650。下面是如何在Linux上安装支持NVIDIA GPU硬件加速的FFmpeg的步骤:
首先确保你在Ubuntu或Debian上已经安装了最新的NVIDIA专有驱动。可以使用以下命令进行安装:
bash
sudo apt install nvidia-driver-460
然后重启你的Linux系统:
bash
sudo reboot
接下来,使用apt命令或apt-get命令安装CUDA工具包:
bash
sudo apt install nvidia-cuda-toolkit
为了使用NVIDIA编译ffmpeg,我们还需要一个叫做ffnvcodec的工具。可以从其git存储库进行克隆:
bash
mkdir ~/nvidia/ && cd ~/nvidia/
git clone git./git/ffmpeg/nv-codec-headers.git
接着安装ffnvcodec:
bash
cd nv-codec-headers && sudo make install
然后获取ffmpeg的源代码:
bash
cd ~/nvidia/
git clone git./ffmpeg.git ffmpeg/
再安装一些必要的编译器和库:
bash
sudo apt install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
现在配置ffmpeg以支持NVIDIA GPU:
bash
cd ~/nvidia/ffmpeg/
./configure –enable-nonfree –enable-cuda-nvcc –enable-libnpp –extra-cflags=-I/usr/local/cuda/include –extra-ldflags=-L/usr/local/cuda/lib64
之后进行编译和执行:
bash
make -j $(nproc)
验证ffmpeg的执行情况:
bash
ls -l ffmpeg
./ffmpeg
现在你可以使用`-hwaccel cuda`开关进行编码了。例如:
bash
ffmpeg -y -hwaccel cuda -i input.file output.file
为了查看NVIDIA GPU的统计数据和负载情况,可以使用以下命令:
bash
nvidia-smi
你还可以尝试使用`nvtop`,这是一个NVIDIA GPU状态查看器。只需输入`nvtop`即可查看GPU状态。为了结束我们的介绍,让我们对比一下使用和不使用NVIDIA GPU加速的视频转换时间。先是未使用加速器的情况:
未使用加速器(以你的系统为准):time /bin/ffmpeg -y -i /tmp/input.mkv /tmp/out.mp4(显示转换时间)使用NVIDIA GPU加速后,转换时间将大大缩短(取决于具体的GPU性能)。你只需要替换为你的ffmpeg编译版本的路径即可执行GPU加速的视频转换。通过这些步骤,你现在应该在Linux上成功安装了支持NVIDIA GPU硬件加速的FFmpeg,并可以使用它来快速进行视频格式转换。
