FFmpeg是免费和开源的视频转换软件,适用于Linux和类unix系统。不过,在Ubuntu/Debian Linux和其他发行版上,NVIDIA基于硬件的编码在编译时被禁用。所以,自然地,你需要支持NVIDIA的GPU。除此之外,最好在GNU编译器中安装CUDA支持。让我们来看看如何在一个由Ubuntu或Debian Linux驱动的服务器或桌面上一个一个地安装所有组件。
我在Ubuntu Linux 20.04 LTS上测试。我安装了NVIDIA驱动程序版本460和CUDA版本10.1。我的GPU是GeForce GTX 1650。让我们看看如何在Linux上安装支持NVIDIA GPU硬件加速的FFmpeg。
安装FFmpeg与NVIDIA GPU硬件加速Linux
1、第一,确保在Ubuntu或Debian上安装了Nvidia Driver(最新专有驱动程序)。例如:
sudo apt install nvidia-driver-460
2、重启Linux系统:
sudo reboot
3、接下来你需要在Debian或Ubuntu Linux上使用apt命令或apt-get命令安装CUDA工具包:
sudo apt install nvidia-cuda-toolkit
4、要用NVIDIA编译ffmpeg,我们也需要ffnvcodec。克隆git存储库:
mkdir ~/nvidia/ && cd ~/nvidia/
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
5、在Ubuntu或Debian上安装ffnvcodec:
cd nv-codec-headers && sudo make install
6、获取ffmpeg源代码,运行:
cd ~/nvidia/
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg/
7、安装GNU gcc编译器集合和库,运行:
sudo apt install build-essential yasm cmake libtool libc6 libc6-dev unzip wget libnuma1 libnuma-dev
8、配置ffmpeg与NVIDIA GPU支持:
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
9、编译、执行:
make -j $(nproc)
10、可执行验证:
ls -l ffmpeg
./ffmpeg
11、你目前可以使用-hwaccel cuda开关进行编码。例如:
ffmpeg -y -hwaccel cuda -i input.file output.file
如何查看NVIDIA gpu统计数据和加载而使用ffmpeg
使用以下命令:
nvidia-smi
必定要试试nvtop。NVIDIA GPU状态查看器:
nvtop

结束:
我们转换一个视频格式,不用加速器,mkv 转换到mp4:
time /bin/ffmpeg -y -i /tmp/input.mkv /tmp/out.mp4
使用time命令的输出:
real 1m40.678s
user 16m52.159s
sys 0m7.821s
目前一样的文件用NVIDIA GPU加速(注意路径,我调用编译版本):
time ~/ffmpeg/ffmpeg -hwaccel cuda -y -i /tmp/input.mkv /tmp/out.mp4
使用time命令的输出:
real 0m28.494s
user 1m58.659s
sys 0m3.670s
从上您了解了如何在Debian或Ubuntu Linux上安装支持NVIDIA GPU加速硬件的FFmpeg,以加快FFmpeg命令的编码速度。如果能协助到你请帮我点赞!

收藏了,感谢分享