Ubuntu18上安装QSV+FFMPEG环境
Ubuntu18上安装QSV+FFMPEG环境
- Intel Media SDK相关下载
- 编译前的准备
- 安装libva
- 安装libva-utils
- 安装gmmlib
- 安装media-driver
- 安装Media SDK
- 安装FFMPEG
- 参考文章
由于项目需要,需要在一块I7-8850H上进行H264解码成YUV并显示的功能。由于系统是Ubuntu18,故打算使用QT+FFMPEG来实现。先前的一路软解发现CPU占用率去到了20%以上,我们需要同时进行四路解码,这个占用率是无法接受的,故打算使用FFMPEG进行硬解。由于只有I7的集显,所以只能使用QSV。现在记录下安装方法。(实现代码在Ubuntu18使用FFMPEG+QT实现QSV硬解)
Intel Media SDK相关下载
sdk可以自行去官网下载:官网地址
这里我使用最新的21.2.3版本 下载地址
这里需要把除了opencl的依赖都下载下来Media SDK and Samples、Driver、Gmmlib、libva、libva-utils都要,点击对应的连接进去下载,有些可以下载编译好的,我这里全都选择下载源码自己编译。记得一定要按照他给的链接点进去下载,这些库的版本是会有影响的!
QSV还要求装OPENCL,openCL的依赖可以点进去他给的链接里,里面有安装教程,我这里就不说了。
编译前的准备
1、编译需要一些工具,都可以直接apt安装的。
$ sudo apt-get install -y git # 使用git需要
$ sudo apt-get install -y make # make编译源码很多地方需要
$ sudo apt-get install -y dh-autoreconf # autogen编译源码时需要
$ sudo apt-get install pkg-config # 编译libva时需要
$ apt-get install -y libncurses5-dev libpthread-stubs0-dev libpciaccess-dev libxvmc-dev xutils-dev libsdl2-dev libxcb-shm0-dev
2、把下载的源码全都解压出来
安装libva
$ cd libva-2.12.0/ #进入libva的目录下
$ ./autogen.sh #使用它自带的配置文件,这里不加额外的参数
$ make -j12 #make I7是12线程的 所以-j12
$ sudo make install #安装 这台设备默认是装到了/usr/lib/x86_64-linux-gnu
$ sudo gedit ~/.bashrc #打开配置文件
把以下两句放到末尾并保存关闭 就是配置库的路径 根据实际安装的位置修改 我的是装到了/usr/lib/x86_64-linux-gnu
export PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH
$ sudo ldconfig #让环境变量生效
安装libva-utils
$ cd .. #退回上层目录
$ cd libva-utils-2.12.0/ #进入libva-utils的源码目录
$ ./autogen.sh #使用它自带的配置文件,这里不加额外的参数
$ make -j12 #make I7是12线程的 所以-j12
$ sudo make install #安装 这台设备默认是装到了/usr/lib/x86_64-linux-gnu
安装gmmlib
$ cd .. #退回上层目录
$ cd gmmlib-intel-gmmlib-21.2.1/ #进入libgmm的源码目录
$ mkdir build #创建一个build目录用来编译
$ cd build/ #进去build目录
$ cmake .. #cmake .. 这个是用cmake编译的
$ make -j12 #make I7是12线程的 所以-j12
$ sudo make install #安装
安装media-driver
$ cd .. #退回上层目录
$ cd media-driver-intel-media-21.2.3/ #进入media-driver-intel-media-21.2.3
$ mkdir build #创建一个build目录用来编译
$ cd build/ #进去build目录
$ cmake .. #cmake .. 这个是用cmake编译的
$ make -j12 #make I7是12线程的 所以-j12
$ sudo make install #安装 这台设备默认是装到了/usr/local/
$ sudo gedit ~/.bashrc #打开配置文件
把以下两句放到末尾并保存关闭 就是配置库的路径 根据实际安装的位置修改 我的是装到了/usr/local/
export LIBVA_DRIVER_NAME=iHD
export LIBVA_DRIVERS_PATH=/usr/local/lib/dri
$ sudo ldconfig #让环境变量生效
这里可以用vainfo验证下是否安装成功
$ vainfo #查看下aapi的相关信息
如果出现以下的信息,则说明前面的安装都成功了
安装Media SDK
$ cd .. #退回上层目录
$ cd MediaSDK-intel-mediasdk-21.2.3/ #进入/MediaSDK-intel-mediasdk-21.2.3
$ mkdir build #创建一个build目录用来编译
$ cd build/ #进去build目录
$ cmake .. #cmake .. 这个是用cmake编译的
$ make -j12 #make I7是12线程的 所以-j12
$ sudo make install #安装 这台设备默认是装到了/opt/
$ sudo gedit ~/.bashrc #打开配置文件
把以下三句放到末尾并保存关闭 就是配置库的路径 根据实际安装的位置修改 我的是装到了/opt/intel/mediasdk/lib/
export LD_LIBRARY_PATH=/opt/intel/mediasdk/lib:$LD_LIBRARY_PATH
export MFX_HOME=/opt/intel/mediasdk/lib/pkgconfig
export PKG_CONFIG_PATH=/opt/intel/mediasdk/lib/pkgconfig:$PKG_CONFIG_PATH
$ sudo ldconfig #让环境变量生效
安装FFMPEG
直接从github上面把源码拉下来(这个过程比较慢)
git clone https://github.com/ffmpeg/ffmpeg
拉下来之后直接编译
$ cd .. #退回上层目录
$ cd ffmpeg #进入ffmeg的目录
$ ./configure --arch=x86_64 --disable-yasm --enable-vaapi --enable-libmfx #配置下参数
$ make -j12 #make
$ sudo make install #安装 在/usr/local里
$ sudo gedit ~/.bashrc #打开配置文件
把以下这一句放到末尾并保存关闭 就是配置库的路径 根据实际安装的位置修改 我的是装到了/usr/local/
export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH
$ sudo ldconfig #让环境变量生效
安装完成之后可以用以下命令命令测试下是否可用
ffmpeg -vcodec h264_qsv -i h264文件 YUV输出文件
如果没有报错,这次解码,那么ffmpeg这一整套就安装完成了。
参考文章
1、https://blog.csdn.net/haiyangyunbao813/article/details/107829583
2、https://zhuanlan.zhihu.com/p/372361709
3、https://zhuanlan.zhihu.com/p/62246545
Ubuntu18上安装QSV+FFMPEG环境相关推荐
- 在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包.录制包等 1 添加密钥和ros2下载 2 更新源和安装ros-eloquent-desktop及其依赖 3 配置环境 3.1 ...
- 在odoo服务器文件夹,在windows10上安装odoo12开发环境的方法
前言 鉴于好多朋友说没有mac电脑,windows开发其实也差不了多远,只是个人习惯问题,而且吧,windows的电脑其实配环境也挺快的其实,我在这里再稍微补一个比较简单的windows环境部署,希望 ...
- linux安装debian桌面,在Debian 10 Buster上安装Cinnamon桌面环境的方法
在本文中,我们将介绍在Debian 10(Buster)操作系统上安装Cinnamon桌面环境的方法.安装Debian 10 Buster之后,可能需要将桌面环境更改为你喜欢的桌面环境,默认安装搭载G ...
- deepin linux桌面环境,如何在Ubuntu上安装Deepin桌面环境
到目前为止,Deepin拥有最时尚的桌面环境.它可能是最漂亮,最好的user-friendly桌面Linux发行版之一.当我们谈论视觉吸引力时,我说它吹走了Windows 10和MacOS并没有错. ...
- linux安装kde桌面环境,在Debian 10(Buster)上安装KDE桌面环境的方法
本文介绍在Debian 10(Buster)操作系统上安装KDE桌面环境(KDE Plasma Desktop Environment)的方法.Debian并没有为每个新版本提供KDE版本,但你可以在 ...
- Ubuntu18上安装搜狗输入法
一.说明 在ubuntu上安装中文输入法会经常遇到问题.本文是作者经过历次艰苦卓绝的努力后,安装成功的总结.这里稍作记录,以便日后安装时查询. 二.版本选择 注意:目前的搜狗和ubun ...
- 在Mac OS X上安装 Ruby运行环境
2019独角兽企业重金招聘Python工程师标准>>> 系统需求 首先确定操作系统环境,不建议在 Windows 上面搞,所以你需要用: Mac OS X 任意 Linux 发行版本 ...
- Apple M1 上安装tensorflow开发环境
文章目录 说明 conda, minconda, miniforge的关系 Conda vs Pip 安装步骤 遇到的问题 tensorflow.keras没有正确安装上 参考链接 说明 由于目前An ...
- linux系统derpin和ubuntu,如何在Ubuntu上安装Deepin桌面环境
毫无疑问,Ubuntu是一个多功能的Linux操作系统,您可以根据自己的风格和品味进行自定义.使用Ubuntu的主要好处之一是很棒的社区支持.这也是各种开发人员开发基于Ubuntu的更多Linux操作 ...
最新文章
- LTSM 实现多元素时序数据植物健康预测
- 用buildout来构建python项目
- HDU 2282 Chocolate (最小费用最大流)
- Lex-BERT:超越FLAT的中文NER模型?
- 节点树xmu 1466.祖先极值
- ajax 进度条 php,php – Jquery :: Ajax提供进度条?
- 【转】21世纪律师办公自动化的一个调查
- 联想Z6预告海报公布:最轻4000mAh手机,没有之一
- 【牛客网】NC31 第一个只出现一次的字符
- Maven 无法下载Oracle 驱动解决
- OPCServer:使用Matrikon OPC Server Simulation
- linux mc服务器 mod_使用阿里云服务器搭建饥荒联机版服务器(最新有效2020.2.9更新)...
- MathType|强大的数学公式编辑器
- 《SpringCloud Alibaba 微服务架构》专题(二十三)-Seat工作原理
- Spyglass之CDC检查(5)
- 2019 CSDN博客之星第三名,感谢各位支持
- Java的面向对象 -- 继承
- 生物信息学算法之Python实现|Rosalind刷题笔记:010 DNA一致性序列计算
- Cubemx与HAL库系列教程|系统时钟配置详解及源码分析
- 保险成电商角逐互联网金融利器