ffmpeg用Nvidia GPU进行加速

预先准备

在已经安装过cuda的前提下,没装过看我Ubuntu16.04安装cuda+cudann+tensorflow,注意只看cuda安装章节就好了。

首先你看下装好的驱动版本满不满足nvidia-video-codec-sdk的要求,比如截止到本文之前,sdk8.2需要NVIDIA Linux display driver 396.24 or newer具体什么需求参考上述链接,里面也有相应的下载地址

如果之前已经安装过cuda或者nvidia驱动,可以通过下列命令来查看驱动版本,具体看弹出命令行左上角

nvidia-smi

我的是下面这个,满足要求

NVIDIA-SMI 396.24

更新驱动(非必须步骤)

其实一开始我的驱动是384.xx版本的,不满足要求,就直接下载了一个NVIDIA-Linux-x86_64-396.24.run,然后

chmod 777 NVIDIA-Linux-x86_64-396.24.run

关闭图形界面(参考该博客)

sudo /etc/init.d/lightdm stop

然后

./NVIDIA-Linux-x86_64-396.24.run

各种yes各种continue,就安装好了,之后重启图形界面

sudo /etc/init.d/lightdm start

下载ffmpeg

https://git.ffmpeg.org/ffmpeg.git

进入到里面

cd ./ffmpeg

配置

./configure --enable-cuda --enable-cuvid --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda-9.0/include --extra-ldflags=-L/usr/local/cuda-9.0/lib64

注意/usr/local/cuda-9.0/lib64是你cuda的安装路径,不同版本可能略有区别,一定要改成你自己的,然后

make -j 10

等待一会,如果没有出错,之后就可以在ffmpeg目录中放个视频(如1.mkv)测试一下

测试

./ffmpeg -y -hwaccel cuvid -c:v h264_cuvid -vsync 0 -i 1.mkv -vf scale_npp=1920:1072 -vcodec h264_nvenc 1.mp4 -vf scale_npp=1280:720 -vcodec h264_nvenc 2.mp4

安装正确的话,上面命令顺畅进行,并在当前目录下生成1.mp4和2.mp4

一些安装错误

nasm/yasm not found or too old. Use –disable-x86asm for a crippled build.

sudo apt install yasm

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

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

这个注意进去那个git链接看下,似乎会根据sdk的版本而更新

./ffmpeg: error while loading shared libraries: libnppig.so.9.0: cannot open shared object file: No such file or directory

这个就是因为上面那个nv-codec-headers错误没有和最前面提到的驱动版本相匹配,比如前面的nv-codec-headers版本是基于sdk8.2的,而8.2目前为之需要的驱动版本是396.24,具体解决回去看前面

你可能感兴趣的:(deeplearning)