intel硬件视频加速介绍
硬件视频加速技术
硬件视频加速(Hardware video acceleration)
通过让显卡编解码视频,从而减轻cpu负担并且还能节省电源。
当视频内容存储在硬盘、dvd、摄像机、手机或广播媒体上时,通常会被压缩并编码成特定的格式。当你想要播放、上传或复制内容到你的手机时,必须先对其进行解码,然后再以一种新的格式重新编码,这是一个耗费资源和时间的过程。硬件视频加速技术通过让显示卡来快速解码,使处理器能够完成其他任务,提高系统响应能力。
在linux上的几种实现:
Video Acceleration API (VAAPI)英特尔开发的规范和开源库,提供硬件加速视频的编/解码。
Video Decode and Presentation API for Unix (VDPAU)是一套NVIDIA开发的,用于将部分视频解码和渲染分担给GPU来处理的开源库和API。
NVDECODE/NVENCODENVIDIA Fermi, Kepler, Maxwell and Pascal系列显卡专有的硬件加速API
intel 硬件加速技术
intel 的开源媒体栈
MSDK
: https://github.com/Intel-Media-SDK/MediaSDK
Libva
: https://github.com/intel/libva
i965 driver
: https://github.com/intel/intel-vaapi-driver
iHD driver
: https://github.com/intel/media-driver
VA-API
开源驱动
:
AMD
: 位于官方软件仓库的libva-vdpau-driver
和mesa
两者为 Radeon 9500 或更新的GPU提供支持。
Intel
: 位于官方软件仓库的libva-intel-driver
软件包为 GMA 4500 系列或者更新的GPU提供支持。
NVIDIA
: 位于官方软件仓库的libva-vdpau-driver
和mesa
两者为 GeForce 8 系列和更新的GPU提供支持。位于AUR的 nouveau-fwAUR 软件包包含从NVIDIA闭源驱动中提取出的必要的固件文件。
闭源驱动
:
AMD
: 位于AUR的libva-xvba-driverAUR[broken link: archived in aur-mirror]
软件包为 Radeon HD 4000 系列或更新的GPU提供支持。在 Radeon HD 5000 系列或者更新的GPU上请使用 catalyst-utilsAUR 驱动;在 Radeon HD 4000 系列上使用 catalyst-total-hd234kAUR 作为驱动程序。
NVIDIA
: 位于官方软件仓库的libva-vdpau-driver
软件包和nvidia-utils
驱动为 GeForce 8 系列或更新的GPU提供支持。
intel
依赖libva-intel-driver
AMD
依赖libva-mesa-driver)
安装
以前整理过ubuntu下的简洁安装记录:
linux 下 intel vaapi安装
主要是安装media-driver及其依赖库。
检验 VA-API
运行 libva-utils 包提供的 vainfo
工具 来检查 VA-API 的设置:
$ vainfo
libva info: VA-API version 0.39.4
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.3)
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.3
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointEncSliceLP
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointEncSliceLP
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
样例
ffmpeg vaapi h264加速样例,其他ffmpeg wiki还有很多。
$ ffmpeg -threads 1 -i file.ext -vaapi_device /dev/dri/renderD128 -vcodec h264_vaapi -vf format='nv12|vaapi,hwupload' output.mp4
代码例 曾经写过的vaapi样例: 解码->overlay->编码
vaapi-test.go
Intel Quick Sync(QSV)
除了VAAPI之外,intel还有一项自己平台专属的硬件加速技术QSV(quick-sync-video)。
Quick Sync Video
使用Intel图形技术专用媒体处理能力来快速编解码。
ffmpeg wiki有一页qsv的介绍,但是推荐使用VA-API(iHD / i965) 驱动代替libmfx.
API支持情况
QSV支持访问多种不同的媒体库API:
DXVA2 / D3D11VA
: 标准Windows api,由Intel图形驱动程序实现,以支持视频解码。
linux libmfx
:这是intel的一个库,可以作为Intel Media SDK的一部分安装,并且支持一些编码和解码类型。
Windows libmfx
: 英特尔的图形驱动程序提供,它支持所有的编码和解码的类型。
Media Foundation
:通过英特尔图形驱动程序,支持一部分编解码类型,没有继承进ffmpeg。
VAAPI i965驱动
:这是一个几乎免费的libva/VAAPI驱动程序。大多数Linux发行版都打包了它。
VAAPI iHD驱动
:Linux上的libmfx后期使用了的一个修改过的libva和VAAPI驱动程序;这也可以由用户直接使用。
vaapi/mfx比较
vaapi/i965
1)在大多数Linux发行版中都是作为标准打包的。
2)可运行在所有可用的硬件上,包括一些较老和较便宜的设备。
3)支持大多数编解码器。
4)通用的API,也可以使用基于Mesa的AMD / Nvidia硬件。
5)可与标准api (EGL/OpenGL, OpenCL)交互。
libmfx /iHD
1)在某些情况下,可能会提供更好的编码质量(如look_ahead)。
2)在某些情况下(如MFE,特别是在Iris图形上)可能会提供更高的编码吞吐量。
3)linux和windows皆通用的API。
4)可与Intel实现的OpenCL实现交互。
安装
linux
下
可以安装基于vaapi开源的MediaSDK
windows
下
官方有驱动下载:https://software.intel.com/media-sdk
样例
h264解码
ffmpeg -hwaccel qsv -c:v h264_qsv -i input.mp4 -f null -
代码例: qsv 解码->overlay->编码
qsv-test.go
参考 : Wiki/QuickSync
intel硬件视频加速介绍的更多相关文章
- 【Chromium中文文档】Chrom{e,ium}{,OS}中的硬件视频加速
Chrom{e,ium}{,OS}中的硬件视频加速 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_ ...
- Intel Cyclone SoC FPGA介绍
3.1 Intel Cyclone SoC FPGA介绍 3.1.1 SoC FPGA的基本概念 Intel Cyclone V SoC FPGA是Intel PSG(原Altera)于2013年发布 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_1-1.SpringBoot整合微信支付开发在线教育视频站点介绍
笔记 第一章项目介绍和前期准备 1.SpringBoot整合微信支付开发在线教育视频站点介绍 简介: 课程介绍,和小D课堂在线教育项目搭建开发 1.课程大纲介绍 2.微信支付项 ...
- Windows10下运行Android Studio3.3时关于AMD处理器不支持Intel硬件加速的解决办法
我的电脑是Thinkpad E485系列,CPU是AMD Ryzen 5 2500U,电脑预装系统是Windows10 X64家庭版,如下图所示: 下载安装了Android Studio3.3,创建了 ...
- Intel DAAL AI加速——支持从数据预处理到模型预测,数据源必须使用DAAL的底层封装库
数据源加速见官方文档(必须使用DAAL自己的库): Data Management Numeric Tables Tensors Data Sources Data Dictionaries Data ...
- 蓝松SDK - 卡点视频制作介绍
---恢复内容开始--- 说明:卡点视频:是指随音频的节拍来不断的切换照片做成的一种 动感视频效果.卡点是卡的音乐中节奏切换的时间点, 在这些时间点上动态切换一个图片, 并给图片做各种动画,从而形成或 ...
- (视频分辨率介绍)混淆的概念:SIF与CIF、4CIF与D1
http://www.microjie.com/index.php/professional-knowledge/82-standards-parterns/26-profession-knowled ...
- intel windows caffe加速
网址: https://github.com/BeFreeRoad/intel_caffe_windows 将intel caffe从linux平台移植到windows平台. 性能: 在虚拟机上测试可 ...
- iOS WebRTC 点对点实时音视频流程介绍
前言 公司某个项目需要接入音视频即时通讯, 功能类似微信的拨打视频通话,语音通话的场景.那么对于音视频通讯会用到什么技术呢?没错,它就是 WebRTC . 什么是WebRTC WebRTC,名称源自网 ...
随机推荐
- linux文件系统与链接
Linux的文件属性图1 图1 linux的文件属性 ls -lhi -l 长格式 -h 人性化 -i inodo -d 看目录自己的信息 inode 源自于文件系统 分区 平面设计图 格式化 施 ...
- Zookeeper开源客户端框架Curator的使用
CuratorFramework Curator框架提供了一套高级的API, 简化了ZooKeeper的操作. 话不多说,看代码 package com.donews.data.util import ...
- Range Sum Query - Immutable(easy)
1.这道题目与pat中的1046. Shortest Distance (20)相类似: 2.使用一个数组dp[i],记录0到第i个数的和 3.求i到j之间的和时,输出dp[j]-dp[i]+num[ ...
- 16)用了session会话技术
为什么用session会话技术? 因为假如你进入后台,不可能随意进入,即使你的验证通过了,那么还需要一个变量来存一个标志,假如标志的值是yes,那么我们可以直接进入后台的首页,无需验证,但是,标志是n ...
- REVIT 卸载工具,完美彻底卸载清除干净revit各种残留注册表和文件
一些同学安装revit出错了,也有时候想重新安装revit的时候会出现这种本电脑windows系统已安装revit,你要是不留意直接安装,只会安装revit的附件,revit是不会安装上的.这种原因呢 ...
- python循环删除list中的元素
直接上例子: a = [1,2,3,4,5,6] for i in a: a.remove(i) print(a) 返回:[2, 4, 6] 循环a,想删除a的所有元素,但实际确有数据保留了下来,这是 ...
- apache和tomcat的关系
apache和tomcat的关系: 举个例子:apache是一辆卡车,上面可以装一些东西如html等.但是不能装水,要装水必须要有容器(桶),tomcat就是一个桶(装像JAVA这样的水),而这个桶也 ...
- linux上python3的安装
我这里使用的时centos7-mini,centos系统本身默认安装有python2.x,版本x根据不同版本系统有所不同,可通过 python --V 或 python --version 查看系统自 ...
- .net和JAVA面向对象,继承有趣的细节
原型是同事间讨论的一道面试题.估计这题秒杀了不少人,LZ也被秒了. 但这个题里隐藏了一个很有趣的细节,这个细节不说清楚,不少人会其实死的冤枉. 这是C#的代码. class Program { sta ...
- 是谁收购了被谷歌私藏7年之久的Zagat?
国内餐饮行业的风口似乎总是执着于"价格"上,无论是天天搞特价的外卖,还是优惠不停歇的团购网站,都将"价格"当做了竞争的杀手锏.即使是网红奶茶.甜品之类的,也是将 ...