Intel Media SDK安装步骤

摘要:
!!! (gcc/g++的版本应该高于4.8,我使用5.4版。)首先安装依赖项,然后按以下步骤执行1.LIBVAgitclonehttps://github.com/intel/libva.gitcdlibva/./autogen.sh./configuremakemakeinstallcp/usr/local/include/va/*/usr/include/cp/usr/local/lib/l

!!!(gcc/g++版本要在4.8以上,本人使用的是5.4版本)

要先安装依赖,按以下步骤依次执行

1.LIBVA

git clone https://github.com/intel/libva.git 
cd libva/ 
./autogen.sh 
./configure 
make 
make install 
cp /usr/local/include/va/* /usr/include/ 
cp /usr/local/lib/libva* /usr/lib64/

2.Intel(R) Graphics Memory Management Library(gmmlib)(可以不用单独安装,安装Media Driver时会附带安装)

Introduction

The Intel(R) Graphics Memory Management Library provides device specific and buffer management for the Intel(R) Graphics Compute Runtime for OpenCL(TM) and the Intel(R) Media Driver for VAAPI.

License

The Intel(R) Graphics Memory Management Library is distributed under the MIT Open Source license.

You may obtain a copy of the License at:

https://opensource.org/licenses/MIT

Building

Get gmmlib repo, make it look like

        <workspace>

    |- GmmLib

$ mkdir <workspace>/build

$ cd <workspace>/build

cmake [-DCMAKE_BUILD_TYPE= Release | Debug | ReleaseInternal] [-DARCH= 64 | 32] ../GmmLib

$ make -j8 ( Also performs compile time ULT)

Build步骤如下:

    mkdir workspace && cd workspace/
    git clone https://github.com/intel/gmmlib.git
    mkdir build && cd build
    cmake [-DCMAKE_BUILD_TYPE= Release] [-DARCH= 64] ../gmmlib
    make -j8 
执行完make以后会得到如下结果:
[ 89%] Linking CXX static library libgmm_umd.a
[ 89%] Built target gmm_umd
[ 90%] Linking CXX shared library libigdgmm64.so
[ 90%] Built target igfx_gmmumd_dll
[ 91%] Linking CXX static library libigfx_gmmumd_excite.a
[ 91%] Built target igfx_gmmumd_excite
Scanning dependencies of target GMMULT
[ 91%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmCachePolicyULT.cpp.o
[ 92%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmCommonULT.cpp.o
[ 93%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmGen10CachePolicyULT.cpp.o
[ 94%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmGen9CachePolicyULT.cpp.o
[ 94%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmGen10ResourceULT.cpp.o
[ 95%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmGen9ResourceULT.cpp.o
[ 96%] Building CXX object Source/GmmLib/ULT/CMakeFiles/GMMULT.dir/GmmResourceCpuBltULT.cpp.o
[ 97%] Linking CXX static library libigfxgmmumd.a
[ 97%] Built target igfxgmmumd

把生成的动态和静态库拷贝到 /usr/lib64 目录下:

cp Source/GmmLib/libgmm_umd.a /usr/lib64/ && 
cp Source/GmmLib/libigdgmm64.so /usr/lib64/ && 
cp Source/GmmLib/libigfx_gmmumd_excite.a /usr/lib64/ && 
cp Source/GmmLib/libigfxgmmumd.a /usr/lib64/

Install

Not a stand alone software component. GmmLib is build as static library for Intel media driver and Compute runtime for OpenCL Supported Platforms

Intel Atom and Core Processors supporting Gen9/Gen10 graphics devices

BDW (Broadwell)

SKL (Skylake)

CNL (Cannonlake)

 

3.Intel(R) Media Driver for VAAPI

Introduction

The Intel(R) Media Driver for VAAPI is a new VA-API (Video Acceleration API) user mode driver supporting hardware accelerated decoding, encoding, and video post processing for GEN based graphics hardware.

License

The Intel(R) Media Driver for VAAPI is distributed under the MIT license with portions covered under the BSD 3-clause "New" or "Revised" License. You may obtain a copy of the License at: https://opensource.org/licenses/MIT & https://opensource.org/licenses/BSD-3-Clause

Prerequisites

For Ubuntu 16.04 and above 
apt install autoconf libtool libdrm-dev xorg xorg-dev openbox libx11-dev libgl1-mesa-glx libgl1-mesa-dev 
Equivalents for other distributions should work.

Dependencies

Libva - https://github.com/intel/libva 
GmmLib - https://github.com/intel/gmmlib (please check https://github.com/intel/media-driver/wiki/Comparability-with-GmmLib)

Building

 1. Build and install libva master
  2. Get gmmlib and media repo and format the workspace folder as below (suggest the workspace to be a dedicated one for media driver build):
<workspace>
    |- gmmlib
    |- media-driver

$ mkdir <workspace>/build_media

$ cd <workspace>/build_media

$ cmake ../media-driver 
-DCMAKE_INSTALL_PREFIX=/usr 
-DMEDIA_VERSION="2.0.0" 
-DBUILD_ALONG_WITH_CMRTLIB=1 
-DBS_DIR_GMMLIB=`pwd`/../gmmlib/Source/GmmLib/ 
-DBS_DIR_COMMON=`pwd`/../gmmlib/Source/Common/ 
-DBS_DIR_INC=`pwd`/../gmmlib/Source/inc/ 
-DBS_DIR_MEDIA=`pwd`/../media-driver

Alternatively, copy
<workspace>/media-driver/unified_cmake.sh

into
<workspace>/build_media

then run
$ ./unified_cmake.sh

$ make -j8

Install
$ sudo make install

This will install the following files (e.g. on Ubuntu):
-- Installing: /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
-- Installing: /etc/profile.d/intel-media.sh
-- Installing: /usr/lib/x86_64-linux-gnu/igfxcmrt64.so

Build步骤如下:

    cd workspace/
    git clone https://github.com/intel/media-driver.git
    mkdir build_media && cd build_media/
    cp ../media-driver/unified_cmake.sh ./
    ./unified_cmake.sh 
   make -j8
   make install
执行unified_cmake.sh脚本时可能会报如下错误:
CMake Error at /usr/local/share/cmake-3.5/Modules/FindPkgConfig.cmake:363 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/local/share/cmake-3.5/Modules/FindPkgConfig.cmake:528 (_pkg_check_modules_internal)
  cmrtlib/linux/CMakeLists.txt:68 (pkg_check_modules)


-- Configuring incomplete, errors occurred!
See also "/opt/MediaDriver/build_media/CMakeFiles/CMakeOutput.log".

解决方法:

vim /usr/local/share/cmake-3.5/Modules/FindPkgConfig.cmake
356行,把set(_pkg_check_modules_failed 1)改为set(_pkg_check_modules_failed 0)
再执行./unified_cmake.sh

执行make install后,无错误的情况如下:

Install the project...
-- Install configuration: ""
-- Installing: /home/tvu/hevc_shmenc_new/shmenc/3rdparty/libva-1.8.3/lib/lib/dri/iHD_drv_video.so
-- Installing: /usr/lib64/igfxcmrt64.so
-- Installing: /etc/profile.d/intel-media.sh

命令行输入:echo $LIBVA_DRIVERS_PATH 查看环境变量的值,如下:

/usr/intel/mediasdk/lib64 

执行 ls /usr/intel/mediasdk/lib64 可以看到此目录下有如下文件:

iHD_drv_video.so  libmfxhw64-p.so.1.19  libmfxhw64.so  libmfxsw64-p.so.1.19  libmfxsw64.so

iHD_drv_video.so  libdispatch_shared.a  libmfx.a  libmfxhw64-p.so.1.19  libmfxhw64-p.so.1.26  libmfxhw64.so  libmfxsw64-p.so.1.19  libmfxsw64.so  pkgconfig 

执行如下命令替换掉 /usr/intel/mediasdk/lib64/iHD_drv_video.so(此步骤也可以在装完MediaSDK后执行):

cp /home/tvu/hevc_shmenc_new/shmenc/3rdparty/libva-1.8.3/lib/lib/dri/iHD_drv_video.so  /usr/intel/mediasdk/lib64/

然后执行vainfo的到如下结果:

error: can't connect to X server!
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /usr/intel/mediasdk/lib64/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 1.67.0.pre1)
vainfo: Driver version: Intel iHD driver - 2.0.0
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : <unknown entrypoint>
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : <unknown entrypoint>
      VAProfileH264Main               : <unknown entrypoint>
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : <unknown entrypoint>
      VAProfileH264High               : <unknown entrypoint>
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: <unknown entrypoint>
      VAProfileH264ConstrainedBaseline: <unknown entrypoint>
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain               : <unknown entrypoint>
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD

*注意:没替换掉 /usr/intel/mediasdk/lib64/iHD_drv_video.so的情况下,命令行执行vainfo可能会出现以下情况:

error: can't connect to X server!
libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'iHD'
libva info: Trying to open /usr/intel/mediasdk/lib64/iHD_drv_video.so
libva error: /usr/intel/mediasdk/lib64/iHD_drv_video.so has no function __vaDriverInit_1_0
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

4.Intel® Media SDK

Intel® Media SDK provides an API to access hardware-accelerated video decode, encode and filtering on Intel® platforms with integrated graphics.

Supported video encoders: HEVC, AVC, MPEG-2, JPEG Supported Video decoders: HEVC, AVC, VP8, MPEG-2, VC1, JPEG Supported video pre-processing filters: Color Conversion, Deinterlace, Denoise, Resize, Rotate, Composition Important note

The current version of Intel Media SDK is compatible with the open source Intel Media Driver for VAAPI. Intel Media SDK depends on LibVA. FAQ

You can find answers for the most frequently asked questions here. Table of contents

  • License
  • How to contribute
  • Documentation
  • Products which use Media SDK
  • System requirements
  • How to build
  • Requirements
  • Build steps

License

Intel Media SDK is licensed under MIT license. See LICENSE for details.

How to contribute

See CONTRIBUTING for details. Thank you!

Documentation

Please find full documentation under the doc/ folder. Key documents:

  • Media SDK Developer Reference
  • Media SDK Developer Reference Extensions for User-Defined Functions
  • Media Samples Guide

You may also wish to visit Intel Media Server Studio support page for additional documentation.

products which use Media SDK

  • Intel Media Server Studio
  • Intel Media SDK for Embedded Linux

System requirements

Operating System: Linux

Software:

  • LibVA
  • VAAPI backend driver:
    Intel Media Driver for VAAPI
  • Some features require CM Runtime library (part of Intel Media Driver for VAAPI package)

Hardware: Intel platforms supported by the Intel Media Driver for VAAPI

Media SDK test and sample applications may require additional software packages (for example, X Server, Wayland, LibDRM, etc.) to be functional.

How to build

Requirements
  • Git* (with LFS support)
  • Perl* v5.16+
  • Cmake* v2.8+
  • GCC* v4.8+
  • LibVA

Build steps

Get sources

git clone https://github.com/Intel-Media-SDK/MediaSDK msdk
cd msdk

Configure build with GCC (default) compiler:

perl tools/builder/build_mfx.pl --cmake=intel64.make.release

这时会报如下错误:

CMake Error at builder/FindTrace.cmake:27 (include):
  include could not find load file
    /usr/intel/mediasdk/builder/FindVTune.cmake
Call Stack (most recent call first):
  CMakeLists.txt:56 (include)

解决方法:

mkdir /usr/intel/mediasdk/builder/ 
cp builder/*  /usr/intel/mediasdk/builder/

再执行perl tools/builder/build_mfx.pl --cmake=intel64.make.release即可。

This will build MSDK binaries and MSDK samples.

If you want to configure build with CLang compiler use the following command:

perl tools/builder/build_mfx.pl --cmake=intel64.make.release.clang

Run build:

make -j8 -C __cmake/intel64.make.release

免责声明:文章转载自《Intel Media SDK安装步骤》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇gitlab修改默认端口在macOS苹果电脑上安装Azure DevOps Server(TFS)代理下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java service wrapper 级别为info导致内存剧增直至溢出

上周,公司某一环境发生java service wrapper内存剧增导致最后被自动killed的情况,经过分析,确定导致java service wrapper(后续简称wrapper)守护进程内存快速增长直至被killed的最根本原因是应用程序到mysql数据库的jdbc可用连接远远小于java应用并发线程数,导致报了很多的连接异常(这些异常在至少三种...

VSCode编译CMake工程报错c++: internal compiler error: Killed (program cc1plus)

现象 使用VSCode+CMake构建C++工程时只能编译Release版本,无法编译Debug版本。 报错提示c++: internal compiler error: Killed (program cc1plus) 解决 编译过程中内存不足 方案1:增加内存 如果在虚拟机运行Linux可以增加虚拟机的分配内存或增大swap空间 具体方法可以参考这篇文...

Flask 中的路由系统

目录 1.methods允许请求的方法 2.endpoint url的反向解析 3.defaults默认参数 4.strict_slashes url结尾界定符匹配 5.redirect_to url地址重定向 6.subdomain 子域名 7.动态参数路由 1.methods允许请求的方法 methods : 当前 url 地址,允许访问的请求...

Andrioid Studio生成jar, aar包

在Android Studio中对一个自己库进行生成操作时将会同时生成*.jar与*.aar文件。分别存储位置:*.jar:库/build/intermediates/bundles/debug(release)/classes.jar *.aar:库/build/outputs/aar/libraryname.aar 两者区别:*.jar:只包含了cla...

编译Xposed

Xposed是Android平台上的有名的Hook工具,用它可以修改函数参数,函数返回值和类字段值等等,也可以用它来进行调试。Xposed有几个部分组成: 修改过的android_art,这个项目修改部分art代码,使Hook成为可能 Xposed native部分,该部分主要提供给XposedBridge可调用api和调用修改过的android_art...

MySql 5.7对json_table()函数的一次变通替代

一、前言 目前项目使用的数据库是Oracle 12c,选择该版本的的主要原因之一是支持json。某日,某变态客户说要转向云平台,而云平台却没有Oracle只有MySql及其它开源产品。在把建库脚本(包括表、视图、索引、触发器、存储过程等等)由oracle版转为mysql版的过程中,最烦人的一个难关是如何实现json_table()函数的替代。 Oracle...