FFmpeg using NVIDIA GPUs
官方文件: https://developer.nvidia.com/ffmpeg
編譯一般的 CPU 的組態,設定之前要先安裝 lame/3.100 & x264/0.157.2935
./configure –enable-nonfree –enable-gpl –enable-libx264 –enable-libmp3lame –enable-shared –enable-static –prefix=/opt/ffmpeg/4.1_cpu
在弄 GPU 組態之前要先安裝 nv-codec-headers
# git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
# cd nv-codec-headers/
# make
# make install# export PKG_CONFIG_PATH=”/usr/local/lib/pkgconfig”
如果沒有執行上面的步驟,會出現下列的錯誤:
ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec
GPU 組態如下:
./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 – -prefix=/opt/ffmpeg/4.1_gpu
然後就用 make 編譯
安裝好之後,就可以用下列的參數使用 GPU 加速:
$ ffmpeg -y -hwaccel cuvid -c:v h264_cuvid -vsync 0 -i XXX.mp4 -vcodec h264_nvenc XXX_output.mp4
或是按照官網的範例
$ ffmpeg -y -hwaccel cuvid -c:v h264_cuvid -vsync 0 -i XXX.mp4 -vf scale_npp=1920:1072 -vcodec h264_nvenc XXX-1-264.mp4 -vf scale_npp=1280:720 -vcodec h264_nvenc XXX-2-264.mp4
如果出現下列錯誤:
nasm/yasm not found or too old. Use –disable-x86asm for a crippled build.
代表要安裝或更新 nasm / yasm,假設你也是使用 CentOS 6.X,指令如下:
# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install -y epel-release
# yum install -y nasm yasm