ESXi6.7 centos6 直通英睿达GPU,并编译ffmpeg

直接安装ffmpeg,是不能用显加速的

CentOS 7

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

CentOS 6

sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm

装FFmpeg 和 FFmpeg开发包

sudo yum install ffmpeg ffmpeg-devel -y<br />

 
下面进入正题

ESXi 准备工作,我是一张1080显卡和一个核显。核显被我从bios直接关闭

1.在VM的配置文件增加

hypervisor.cpuid.v0 = "FALSE"

基础依赖包

yum install -y git yasm gcc perl kernel-devel-$(uname -r) kernel-headers-$(uname -r)

安装CUDA

我安装的是10.1

https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=6&target_type=rpmlocal

  1. rpm -i cuda-repo-rhel6-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm
  2. yum clean all
  3. yum install cuda

执行第三步时,提示缺少libvdpau和dkms,谷歌,装之

yum install epel-release

yum install -y dkms libvdpau

重新执行

yum install cuda

进过漫长的等待,cuda安装结束。

验证安装结果,运行nvcc -V,结果提示没命令不存在,原因是没有加到path,加之(官方的程序也不靠谱啊,哭死)

echo 'export PATH=/usr/local/cuda-10.1/bin:$PATH' >> ~/.bashrc

echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.1/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc

source ~/.bashrc

继续验证,通过

继续输入命令

nvidia-smi

应该会显示一个表

如果结合watch命令,可以拿来监控显卡工作情况

watch -n 1 nvidia-smi

试一下官方的例子

进入目录

cd /usr/local/cuda-10.1/samples

输入命令 make,要等好久,虚拟机,有点慢......

编译完成后测试 
进入/usr/local/cuda-10.1/samples/bin/x86_64/linux/release
运行deviceQuery程序,./deviceQuery 
查看输出结果,重点关注最后一行,Pass表示通过测试。

开始编译ffmpeg

参考官方文档https://developer.nvidia.com/ffmpeg

我创建了目录/data, 先clone 2个仓库到本地

cd /data

git clone https://github.com/libav/libav

编译,没什么问题

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

又是漫长的等待,还重试了好几次,天朝的开发者真是痛苦,编译之

提示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

make install

export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" 

再重新编译ffmpeg

./configure

make -j4

make install

原因是官方好像由于某种原因移除了一些文件,不重要啦!

 最后,测试一下啦

ffmpeg -y -hwaccel cuvid -c:v h264_cuvid -vsync 0 -i <input.mp4> -vf scale_npp=1920:1072 -vcodec h264_nvenc <output0.264> -vf scale_npp=1280:720 -vcodec h264_nvenc <output1.264>

试了一下,ffmpeg硬件编码,最终speed=23.5x

相关推荐