The Intel® Media SDK
Intel® Media SDK provides a plain C API to access hardware-accelerated video decode, encode and filtering on Intel® Gen graphics hardware platforms. Implementation written in C++ 11 with parts in C-for-Media (CM).
Supported video encoders: HEVC, AVC, MPEG-2, JPEG, VP9
Supported video decoders: HEVC, AVC, VP8, VP9, MPEG-2, VC1, JPEG, AV1
Supported video pre-processing filters: Color Conversion, Deinterlace, Denoise, Resize, Rotate, Composition
Media SDK is a part of Intel software stack for graphics: * Linux Graphics Drivers - General Purpose GPU Drivers for Linux* Operating Systems * Visit documentation for instructions on installing, deploying, and updating Intel software to enable general purpose GPU (GPGPU) capabilities for Linux*-based operating system distributions.
Intel Media SDK is licensed under MIT license. See LICENSE for details.
See CONTRIBUTING for details. Thank you!
To get copy of Media SDK documentation use Git* with LFS support.
Please find full documentation under the ./doc folder. Key documents: * Media SDK Manual * Additional Per-Codec Manuals: * Media SDK JPEG Manual * Media SDK VP8 Manual * Advanced Topics: * Media SDK User Plugins Manual * Media SDK FEI Manual * Media SDK HEVC FEI Manual * MFE Overview * HEVC FEI Overview * Interlace content support in HEVC encoder
Generic samples information is available in Media Samples Guide
Visit our Github Wiki for the detailed setting and building instructions, runtime tips and other information.
Learn best practises and borrow fragments for final solutions: * https://github.com/intel/media-delivery * This collection of samples demonstrates best practices to achieve optimal video quality and performance on Intel GPUs for content delivery networks. Check out the demo, recommended command lines and quality and performance measuring tools.
Use Media SDK via other Intel products: * OpenVINO Toolkit * This toolkit allows developers to deploy pre-trained deep learning models through a high-level C++ Inference Engine API integrated with application logic. * Open Visual Cloud * The Open Visual Cloud is a set of open source software stacks (with full end-to-end sample pipelines) for media, analytics, graphics and immersive media, optimized for cloud native deployment on commercial-off-the-shelf x86 CPU architecture.
Operating System: * Linux x86-64 fully supported * Linux x86 only build * Windows (not all features are supported in Windows build - see Known Limitations for details)
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.
Operating System: Windows (experimental)
Requires Microsoft Visual Studio 2017 for building.
Get sources with the following Git* command (pay attention that to get full Media SDK sources bundle it is required to have Git* with LFS support):
sh git clone https://github.com/Intel-Media-SDK/MediaSDK msdk cd msdk
To configure and build Media SDK install cmake version 3.6 or later and run the following commands:
sh mkdir build && cd build cmake .. make make installMedia SDK depends on a number of packages which are identified and checked for the proper version during configuration stage. Please, make sure to install these packages to satisfy Media SDK requirements. After successful configuration 'make' will build Media SDK binaries and samples. The following cmake configuration options can be used to customize the build:
| Option | Values | Description | | ------ | ------ | ----------- | | API | master|latest|major.minor | Build mediasdk library with specified API. 'latest' will enable experimental features. 'master' will configure the most recent available published API (default: master). | | ENABLEOPENCL | ON|OFF | Enable OpenCL dependent code to be built (default: ON) | | ENABLEX11DRI3 | ON|OFF | Enable X11 DRI3 dependent code to be built (default: OFF) | | ENABLEWAYLAND | ON|OFF | Enable Wayland dependent code to be built (default: OFF) | | ENABLEITT | ON|OFF | Enable ITT (VTune) instrumentation support (default: OFF) | | ENABLETEXTLOG | ON|OFF | Enable textlog trace support (default: OFF) | | ENABLESTAT | ON|OFF | Enable stat trace support (default: OFF) | | BUILDALL | ON|OFF | Build all the BUILD* targets below (default: OFF) | | BUILDRUNTIME | ON|OFF | Build mediasdk runtime, library and plugins (default: ON) | | BUILDSAMPLES | ON|OFF | Build samples (default: ON) | | BUILDTESTS | ON|OFF | Build unit tests (default: OFF) | | USESYSTEMGTEST | ON|OFF | Use system gtest version instead of bundled (default: OFF) | | BUILDTOOLS | ON|OFF | Build tools (default: OFF) | | MFXENABLE_KERNELS | ON|OFF | Build mediasdk with media shaders support (default: ON) |
The following cmake settings can be used to adjust search path locations for some components Media SDK build may depend on:
| Setting | Values | Description | | ------- | ------ | ----------- | | CMAKEITTHOME | Valid system path | Location of ITT installation, takes precendence over CMAKEVTUNEHOME (by default not defined) | | CMAKEVTUNEHOME | Valid system path | Location of VTune installation (default: /opt/intel/vtune_amplifier) |
Visit our Github Wiki for advanced topics on setting and building Media SDK.
and configure Media SDK with the -DENABLEITT=ON. In case of VTune it will be searched in the default location (/opt/intel/vtuneamplifier). You can adjust ITT search path with either CMAKEITTHOME or CMAKEVTUNEHOME.
Once Media SDK was built with ITT support, enable it in a runtime creating per-user configuration file ($HOME/.mfxtrace) or a system wide configuration file (/etc/mfxtrace) with the following content:
Windows build contains only samples and dispatcher library. MediaSDK library DLL is provided with Windows GFX driver.
Intel Media SDK: https://software.intel.com/en-us/media-sdk