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
- rpm -i cuda-repo-rhel6-10-1-local-10.1.168-418.67-1.0-1.x86_64.rpm
- yum clean all
- 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