1.centos中查看gpu设备
笔者机器centos7.8版本,通过lspci |grep VGA命令查看系统GPU设备。
2.下载linux版本Media Sdk
官网下载地址 https://github.com/Intel-Media-SDK/MediaSDK/releases,选择下载的是20.2.0版本
3.安装MediaStack.tar.gz
解压安装包MediaStack.tar.gz,运行install_media.sh安装,默认安装路径/opt/intel/mediasdk。网上有些文件说的比较复杂,安装驱动,安装va等,其实只要安装这一个包就可以了。
4.下载intel开发的ffmpeg分支版本
ffmpeg官网发布的版本是不支持qsv编解码的,需要编译定制版ffmpeg。
首先需要下载intel维护的定制版ffmpeg,下载地址:https://github.com/Intel-FFmpeg-Plugin/Intel_FFmpeg_plugins/,
安装说明https://github.com/Intel-FFmpeg-Plugin/Intel_FFmpeg_plugins/wiki。需要切换到qsv分支,具体参考官方文档,intel官网说如果想充分发挥QSV性能,推荐使用QSV分支的ffmpeg。
实际上直接编译ffmpeg官网维护的版本,打开qsv功能,也是能够使用qsv编解码的。
5.编写pc文件
创建文件libmfx.pc,然后复制到/usr/lib64/pkgconfig目录下。
prefix=/opt/intel/mediasdk
exec_prefix=/opt/intel/mediasdk/
libdir=${prefix}/lib64/
includedir=${prefix}/include/
Name: libmfx
Description: mfx
Version: 1.0.0
Cflags: -I${includedir}
Libs: -L${libdir} -lmfx -ldl -lstdc++ -lrt -lva -lva-drm
Libs.private: -lstdc++ -ldl
6.pc文件加入到packet config搜索路径中
vi /etc/profile
export MFX_HOME=/opt/intel/mediasdk/
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib64/pkgconfig/
source /etc/profile
7.编译ffmpeg
cd Intel_FFmpeg_plugins-qsv-3.2.2/
./configure --prefix=$HOME/build --disable-yasm --enable-libmfx
make&make install
8.ffmpeg命令测试效果
测试qsv解码后保存yuv数据
./ffmpeg -hwaccel qsv -c:v h264_qsv -i sample_720p.h264 -vf hwdownload,format=nv12 -pix_fmt yuv420p output.yuv
测试qsv解码速度
./ffmpeg -hwaccel qsv -i sample_720p.h264 -f null -