0°

FFmpeg+NVIDIA GPU(Tesla P4)H264软/硬编码对比实验

参考链接

https://developer.nvidia.com/ffmpeg   

Getting Started with FFmpeg/libav using NVIDIA GPUs

操作系统基础环境

yum -y install epel-release

yum -y install gcc gcc-c++ cmake bzip2 vim kernel-devel kernel-headers

yum -y install yasm

注:标红的是必须装的。

安装nvidia显卡驱动

https://www.nvidia.cn/Download/index.aspx

注:Operation System这里一定选“Linux 64-bit”,不能选“Linux 64-bit RHEL7”。

下载得到NVIDIA-Linux-x86_64-440.33.01.run

./NVIDIA-Linux-x86_64-440.33.01.run –kernel-source-path=/usr/src/kernels/3.10.0-1062.12.1.el7.x86_64/

一路ok安装即可。

安装完成使用nvidia-smi测试下看是否能够识别显卡。

安装cuda

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

wget http://developer.download.nvidia.com/compute/cuda/10.2/Prod/local_installers/cuda_10.2.89_440.33.01_linux.run

运行./cuda_10.2.89_440.33.01_linux.run安装

accept即可

取消选中Driver。(因上面我们已经装过驱动了,而且如果使用这个地方的驱动是不可用的,识别不了显卡)

将cuda的bin目录添加到path路径中:

vim ~/.bashrc

export PATH=/usr/local/cuda/bin:$PATH

source ~/.bashrc

安装nv-codec-headers

https://github.com/FFmpeg/nv-codec-headers/releases下载

wget https://github.com/FFmpeg/nv-codec-headers/releases/download/n8.1.24.11/nv-codec-headers-8.1.24.11.tar.gz

tar vxzf nv-codec-headers-n8.1.24.11.tar.gz

cd nv-codec-headers && make install 

添加ffnvcodec的pkgconfig路径

vim ~/.bashrc

export PKG_CONFIG_LIBDIR=/usr/lib64/pkgconfig:/usr/share/pkgconfig:/usr/local/lib/pkgconfig:$PKG_CONFIG_LIBDIR

source ~/.bashrc

安装libx264

先安装nasm(需2.13版本以上,不能安装yum源里的2.10)

https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/下载nasm

wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2

tar vxjf nasm-2.14.02.tar.bz2

cd nasm-2.14.02 && ./configure && make && make install 

git clone https://code.videolan.org/videolan/x264.git

cd x264

./configure –enable-shared

make

make install

将libx264的库移动到/usr/lib64下

cp /usr/local/lib/libx264.* /usr/lib64

安装ffmpeg

http://ffmpeg.org/download.html#releases下载ffmpeg

wget http://ffmpeg.org/releases/ffmpeg-4.1.5.tar.bz2

tar vxjf ffmpeg-4.1.5.tar.bz2

cd ffmpeg-4.1.5

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

make -j 10

H264软(libx264)/硬(h264_nvenc)编码测试

将win7系统自带的示例视频Wildlife.wmv(动物那个)拷贝到本环境下,使用ffmpeg转成yuv格式,用于后面使用H264软/硬编码的视频源数据。

./ffmpeg -i /root/Wildlife.wmv /root/Wildlife.yuv

./ffmpeg -s 1280×720 -i /root/Wildlife.yuv -c:v h264_nvenc /root/Wildlife_h264_nvenc.mp4

FFmpeg+NVIDIA GPU(Tesla P4)H264软/硬编码对比实验

./ffmpeg -s 1280×720 -i /root/Wildlife.yuv -c:v libx264 /root/Wildlife_libx264.mp4

FFmpeg+NVIDIA GPU(Tesla P4)H264软/硬编码对比实验

本次测试用的服务器CPU型号为Intel Xeon W-2125,主频比较高,为4.0GHz。通过对比测试,本硬件配置下,Tesla P4 H264硬编码的速度是采用libx264软编码的5-6倍。

0 条回复 A 作者 M 管理员 E
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论