Intel Media SDK

现在 Intel 不再发布单独的 Intel Media SDK, 这个组件在 Linux 平台下集成在 Intel Media Server Studio 中,后文简称 MMS

目前的 MMS 版本推荐的安装平台只有一个 CentOSSUSE12 在当前版本中也算是一个推荐平台)。其他平台的安装比较复杂,官方也不太推荐使用。后文的介绍是基于 CentOS 操作系统的。

如何安装 MMS

首先,你需要在 Intel Developer Zone 下载最新的 MMS 版本,其中的 Community 版本是免费的, MMS 的安装主要分三个步骤。

在解压出来的的文件夹下面有一个 SDK2015Production* 目录,切换到这个目录下面之后,有一个 CentOS 目录。这个目录下面有一个intel_scripts_centos*压缩包,解压这个压缩包之后可以得到下面三个脚本:

-build_kernel_rpm_CentOS.sh
-install_sdk_UMD_CentOS.sh
-uninstall_sdk_UMD_CentOS.sh

安装需要用的是前面两个脚本。

1. 安卓用户空间驱动(user-mode driver – UMD)

下面的命令需要使用超级用户权限:

./install_sdk_UMD_CentOS.shmkdir /MSSchown {普通用户名}:{普通组名} /MSS

2. 编译内核空间的驱动包

下面的命令使用普通用户权限执行:

cp build_kernel_rpm_CentOS.sh /MSScd /MSS./build_kernel_rpm*.sh

3. 安装内核空间的驱动

下面的命令使用超级用户权限执行:

cd /MSS/rpmbuild/RPMS/x86_64rpm -Uvh kernel-3.10.*.rpmreboot

判断是否已经成功的编译内核模块驱动

重启系统之后执行如下命令:

lsmod | grep 'i915'

得到的类似如下的结果:

i915                837369 4
drm_kms_helper      44256 1 i915
drm                 294746 3 i915,drm_kms_helper
i2c_algo_bit        13509 1 i915
intel_gtt           19747 1 i915
i2c_core            40683 5
i2c_i801,i915,drm_kms_helper,drm,i2c_algo_bit
video               19785 1 i915
button              13953 1 i915

如何在 FFMPEG 中编译 intel qsv 硬件编码器

FFMPEG 中使用 libmfx 实现 intel qsv 的硬件编码器,如果想要编译它的硬件编码器,所以如果想要编译这个硬件编码器,你需要在加入如下的配置选项:

./configure --enable-libmfx \--enable-encoder=h264_qsv \--enable-decoder=h264_qsv \...

libmfx can not found using pkg-config

libmfx.pc

编译中可能会报出下面的错误: libmfx can not found using pkg-config,这个错误可能是不同的原因导致,你需要查看 ffmpeg 根目录下的config.log 文件。

如果这个文件中报错说 pkg-config 无法找到 libmfx 这个库,那是因为 MMS 的默认安装没有提供 libmfx.pc 文件,你需要在自己创建这个文件:

sudo mkdir -p /opt/intel/mediasdk/pkgconfigvim /opt/intel/mediasdk/lib64/pkgconfig/libmfx.pc

在文件中写入如下内容:

prefix=/opt/intel/mediasdk
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${exec_prefix}/includeName: libmfxhw64Description: Intel Media SDK dispatcher.
Version: 2015r6
Libs: -L${libdir} -lmfxhw64
Cflags: -I${includedir}

注意这个地方引用的是 libmfxhw64 库,因为测试的是 64 位平台。

当然你可以可以选择在 /usr/lib64/pkgconfig/ 下面创建 libmfx.pc 文件。

mfx/mfxvideo.h

同样是 libmfx can not found using pkg-config 这个命令,也可能是头文件的错误,在 config.log 中会报错说无法找到 mfx/mfxvideo.h 这个文件。

在安装完 MMS 之后,在 /opt/intel/mediasdk/include/ 目录下面会有mfxvideo.h 这个文件,但是在 FFMPEG 中,引用的是 mfx/mfxvideo.h 这个头文件,因此报错,解决的方式是,在 /opt/intel/mediasdk/include 这个目录下面新建目录 mfx,然后吧 include 的头文件拷贝一份到 mfx 目录下。

通过上面这种方式可以修正 mfx/mfxvideo.h 无法找到的错误。

链接 FFMPEG 时的错误

在链接 ffmpeg 的时候还是有可能会出现 MFXxxx undefinded reference 的错误,这时候你需要让你的程序链接到 lmfxhw64 这个库。最简单的方式是,在/usr/lib64/ 中建立一个 libmfxhw64 的软连接

ln -s /opt/intel/mediasdk/lib64/libmfxhw64.so /usr/lib64/libmfxhw64.so

然后在编译自己的程序的时候加入 -lmfxhw64 选项。

在 FFMPEG 中使用 qsv 编码器

qsv 的编码器在 FFMPEG 中有 h264 和 h265 两种,你可以通过下面的代码找到这个编码器。

av_find_encoder_by_name("h264_qsv");

此外,通过 qsvenc_h264.c 这个源文件,我们可以看到它支持 QSV 和 NV12两种格式,但是 QSV 这个格式好像无法正常的使用,你需要把编码的pfx_fmt设置成 NV12

英特尔 QSV 在 FFMPEG 中的使用(Linux)相关推荐

  1. 英特尔QSV技术在FFmpeg中的实现与使用

    本文来自英特尔资深软件工程师张华在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成.在分享中张华介绍了英特尔GPU硬件架构,并详细解析了英特尔QSV技 ...

  2. 浅析英特尔QSV技术在FFmpeg中的具体实现与使用

    本文来自英特尔资深软件工程师张华在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成.在分享中张华介绍了英特尔GPU硬件架构,并详细解析了英特尔QSV技 ...

  3. [ffmpeg][qsv][windows]windows下配置fmpeg英特尔qsv

    [ffmpeg][qsv][windows]windows下配置fmpeg英特尔qsv 文章目录 [ffmpeg][qsv][windows]windows下配置fmpeg英特尔qsv 预装mingw ...

  4. 关于英特尔® 以太网服务器适配器中 SR-IOV 的常见问题解答

    英特尔数据中心解决方案 关于英特尔® 以太网服务器适配器中 SR-IOV 的常见问题解答 关于英特尔® 以太网适配器中单根 I/O 虚拟化 (SR-IOV) 的常见问题 (FAQ),您可以在此页面找到 ...

  5. 英特尔核显自定义分辨率_如何在新版英特尔核芯显卡控制面板中自定义显示器分辨率...

    在新版本的英特尔核芯显卡控制面板中,界面和以前相比有了很大的改变.很多用户可能不太适应怎么在英特尔核芯显卡控制面板中进行相关的设置.下面由系统城小编具体和大家介绍一下如何在新版英特尔核芯显卡控制面板中 ...

  6. intel i218v千兆网卡 linux驱动,适用于英特尔® 千兆位以太网网络连接的 Linux* 基础驱动程序...

    适用于英特尔® 千兆位以太网网络连接的 Linux* igb* 基础驱动程序安装说明 Linux* igb 驱动程序支持所有基于 82575.82576.82580,I350,I354 和 I210/ ...

  7. 哐!英特尔的无人机砸中你头顶

    伊瓢 发自 凹非寺  量子位 报道 | 公众号 QbitAI 美国科技媒体TechCrunch-- 不,今天后面接的不是"报道",而是TechCrunch的编辑,被失控的英特尔无人 ...

  8. openstack架构详解图_英特尔顶级技术专家合力缔造精品:Linux开源网络全栈详解...

    日常水开篇 自1991年诞生起,Linux已经走过了接近三十年.Linux早已没有了问世时的稚气,正在各个领域展示自己成熟的魅力. 以Linux为基础,也衍生出了各种开源生态,例如网络和存储.而生态离 ...

  9. linux核显驱动与内核冲突,英特尔第十二代核显现身Linux驱动库

    导读 英特尔前不久刚公布第十一代核显,都还没正式上市呢,又马不停蹄地向Linux内核提交了第十二代核显的初始驱动.第十二代核显将伴随Ice Lake的下一代CPU一起推出,名为Tiger Lake,是 ...

最新文章

  1. 在线作图丨如何画一个优美的相关性热图
  2. 顺序Guass消去法求解线性方程组的代码实现
  3. jqueryui autocomplete 控件自定义source检索
  4. Ubuntu 14.04 安装小企鹅输入法 Fcitx
  5. python 文件操作 os.mkdir()函数
  6. Redis学习与实战之字符串命令
  7. CF1129D Isolation(分块+DP)
  8. 图结构练习——判断给定图是否存在合法拓扑序列
  9. 关于ThreadLocal
  10. iOS 核心动画 Core Animation浅谈
  11. 7-3 小L的难题 (15 分)
  12. python3 下 tkinter 的网页监控小程序
  13. 希尔伯特空间、欧几里德空间
  14. Android蓝牙自动配对工具类,亲测好使!!!
  15. 色彩的搭配,象征,以及web标准色
  16. VNC Connect远程工具使用-使用体验极高
  17. scaner 从外网到内网域渗透
  18. 力扣(Leetcode)695. 岛屿的最大面积(Java)带注释
  19. Python分布式爬虫框架Scrapy实战
  20. Linux LCD驱动程序

热门文章

  1. 小米/红米 手机内部存储空间其它文件怎么删除内部存储空间不足
  2. graphpad细胞增殖曲线_应用GraphPad Prism制作生存曲线详细图文过程
  3. Linux在sudo apt-get update或install时出现archive.ubuntu.com连接失败 [IP: 91.189.91.39 80]的错误解决方案
  4. 2021.11.28
  5. 怎么把好几行弄成一行_怎么把excel表格里多行变成一行数据|excel表格中让多行内容变成为一行...
  6. utf-8的中文是一个汉字占三个字节长度吗?
  7. 哪个网站的电子书最多?
  8. 如何一步步设计前端架构?
  9. linux查看多核cpu运行状态,Linux下查看多核CPU信息详解
  10. rtx3070ti显卡什么水平 rtx3070ti显卡什么级别 rtx3070ti显卡怎么样