LINUX下,ffmpeg增加NVIDIA硬件编解码的步骤及解决办法

  • 官方关于ffmepg的网页

https://developer.nvidia.com/FFmpeg

  • 下载驱动

https://www.nvidia.com/drivers

  • 下载CUDA

https://developer.nvidia.com/cuda-downloads

  • 下载ffmpeg

http://www.ffmpeg.org/download.html

  • 安装ffnvcodec
git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
cd nv-codec-headers
make && sudo make install
  • 编译ffmpeg 
cd ffmpeg-4.0.2

./configure --disable-asm --disable-x86asm \
 --enable-cuda --enable-cuvid --enable-nvenc \
 --enable-nonfree --enable-libnpp \
 --extra-cflags=-I/usr/local/cuda/include \
 --extra-cflags=-fPIC --extra-ldflags=-L/usr/local/cuda/lib64
# --enable-shared --enable-pic 

make -j8
sudo make install
  • 验证

退出当前终端,重新进入一个,输入命令:

ffmpeg -decoders | grep h264

输出的第一行,应该是:ffmpeg version 4.0.2

VFS..D h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
V..... h264_v4l2m2m     V4L2 mem2mem H.264 decoder wrapper (codec h264)
V..... h264_cuvid           Nvidia CUVID H264 decoder (codec h264)

 

ffmpeg -encoders | grep nv

V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
V..... h264_v4l2m2m      V4L2 mem2mem H.264 encoder wrapper (codec h264)
V..... nvenc                     NVIDIA NVENC H.264 encoder (codec h264)
V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 

  • 测试
ffmpeg -y -hwaccel cuvid -c:v h264_cuvid -vsync 0 -i 2018.MOV -vcodec h264_nvenc -preset slow -b:v 2000k 2017.h264

注意,这里的preset参数,有的不能用了。

 

  • 出错及解决办法
  1. 吾电脑提示要加上--disable-x86asm参数。
  2. configure时出错,提示:

ERROR: cuda requested, but not all dependencies are satisfied: ffnvcodec

解决办法:

git clone https://git.videolan.org/git/ffmpeg/nv-codec-headers.git

cd nv-codec-headers

make && sudo make install

 

 

 

你可能感兴趣的:(Linux/Shell)