https://github.com/intel/media-driver
Intel Graphics Media Driver to support hardware decode, encode and video processing.
https://github.com/intel/media-driver
Last synced: 2 months ago
JSON representation
Intel Graphics Media Driver to support hardware decode, encode and video processing.
- Host: GitHub
- URL: https://github.com/intel/media-driver
- Owner: intel
- License: other
- Created: 2017-11-17T22:54:05.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2025-10-20T10:02:12.000Z (2 months ago)
- Last Synced: 2025-10-21T10:56:46.540Z (2 months ago)
- Language: C
- Homepage: https://github.com/intel/media-driver/wiki
- Size: 151 MB
- Stars: 1,141
- Watchers: 105
- Forks: 368
- Open Issues: 237
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
- Codeowners: .github/CODEOWNERS
- Security: security.md
Awesome Lists containing this project
- awesome-video - intel/media-driver - (Encoding / Talks Presentations Podcasts)
- awesome-repositories - intel/media-driver - Intel Graphics Media Driver to support hardware decode, encode and video processing. (C)
README
# 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 [MIT](https://opensource.org/licenses/MIT) & [BSD-3-Clause](https://opensource.org/licenses/BSD-3-Clause)
## Building
For Ubuntu 16.04+
```
apt install autoconf libtool libdrm-dev xorg xorg-dev openbox libx11-dev libgl1-mesa-glx
```
Equivalents for other distributions should work.
1. Build and install [LibVA](https://github.com/intel/libva)
2. Build and install [GmmLib](https://github.com/intel/gmmlib) following [GmmLib compatibility](https://github.com/intel/media-driver/wiki/Compatibility-with-GmmLib)
3. Get media repo and format the workspace folder as below (suggest the workspace to be a dedicated one for media driver build):
```
|- media-driver
```
4. Create build_media new folder under your workspace
```
$ mkdir /build_media
```
then the workspace looks like below
```
|- media-driver
|- build_media
```
5.
```
$ cd /build_media
```
6.
```
$ cmake ../media-driver
```
7.
```
$ make -j"$(nproc)"
```
## 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
```
For iHD_drv_video.so please export related LIBVA environment variables.
```
export LIBVA_DRIVERS_PATH=
export LIBVA_DRIVER_NAME=iHD
```
## Supported Platforms
- BDW (Broadwell)
- SKL (Skylake)
- BXTx (BXT: Broxton, APL: Apollo Lake, GLK: Gemini Lake)
- KBLx (KBL: Kaby Lake, CFL: Coffee Lake, WHL: Whiskey Lake, CML: Comet Lake, AML: Amber Lake)
- ICL (Ice Lake)
- JSL (Jasper Lake) / EHL (Elkhart Lake)
- TGLx (TGL: Tiger Lake, RKL: Rocket Lake, ADL-S/P/N: Alder Lake, RPL-S/P: Raptor Lake)
- DG1/SG1
- Alchemist(DG2)/ATSM
- MTLx (MTL: Meteor Lake, ARL-S/H: Arrow Lake)
- LNL (Lunar Lake)
- BMG (Battlemage)
- PTL (Pather Lake)
## Components and Features
Media driver contains three components as below
- **Video decoding** calls hardware-based decoder([VDBox](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol08-media_vdbox.pdf)) which provides fully-accelerated hardware video decoding to release the graphics engine for other operations.
- **Video encoding** supports two modes, one calls hardware-based encoder([VDEnc](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol08-media_vdbox.pdf)/[Huc](https://01.org/linuxgraphics/downloads/firmware?langredirect=1)) to provide low power encoding, another one is hardware([PAK](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol08-media_vdbox.pdf))+shader(media kernel+[VME](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol04-configurations.pdf)) based encoding. User could choose the mode through VA-API.
- **Video processing** supports several popular features by hardware-based video processor([VEBox/SFC](https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-kbl-vol09-media_vebox.pdf)) and shader(media kernel) based solution together.
Media driver supports below two builds
- **Full Feature Build** is ***default*** driver build, which supports all feature by hardware accelerator and close source shaders(media kernel binaries). Most of OSVs(like RHEL/SUSE/fedora) are using this build.
- **Free Kernel Build**, enables fully open source shaders(media kernels) and hardware features but the features would be limited.
About Ubuntu/Debian OSV, they provide [intel-media-va-driver-non-free](https://packages.ubuntu.com/search?keywords=intel-media-driver-non-free&searchon=sourcenames) (Full feature build) and [intel-media-va-driver](https://packages.ubuntu.com/search?keywords=intel-media-driver&searchon=sourcenames) (Free kernel build) two packages. ***Free*** here means open source kernel but not related to fee need to pay. You could refer to [build options](https://github.com/intel/media-driver?tab=readme-ov-file#build-options) for more detail.
If you are looking forward to have a big table to share media component features on these two builds, below tables are good referene for your information.
### Decoding/Encoding Features
| CODEC | Build Types |PTL |BMG |LNL | MTLx | DG2/ATSM | DG1/SG1 | TGLx | EHL/JSL | ICL | KBLx | BXTx | SKL | BDW |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AVC | Full-Feature
Free-Kernel | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E/Es
D/E | D/E/Es
D/E | D/E
D/E | D/E/Es
D/E | D/E/Es
D/E | D/E/Es
D/E | D/E/Es
D/E | D/Es
D |
| MPEG-2 | Full-Feature
Free-Kernel | D
D | D
D | D
D | D
D | D
D | D/Es
D | D/Es
D | D
D | D/Es
D | D/Es
D | D
D | D/Es
D | D/Es
D |
| VC-1 | Full-Feature
Free-Kernel |
|
|
|
|
| D
| D
| D
| D
| D
| D
| D
| D
|
| JPEG | Full-Feature
Free-Kernel | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D
D |
| VP8 | Full-Feature
Free-Kernel | D
D | D
D | D
D | D
D |
|
| D*
D* | D
D | D/Es
D | D/Es
D | D
D | D
D | D
D |
| HEVC 8bit | Full-Feature
Free-Kernel | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E/Es
D/E | D/E/Es
D/E | D/E
D/E | D/E/Es
D/E | D/Es
D | D/Es
D | D/Es
D | |
| HEVC 8bit 422 | Full-Feature
Free-Kernel | D/E
D/E | D/E
D/E | D/E
D/E | D
D| D/E
D/E | D/Es
D | D/Es
D | D
D | D/Es
D | | | | |
| HEVC 8bit 444 | Full-Feature
Free-Kernel | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | | | | |
| HEVC 10bit | Full-Feature
Free-Kernel | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E/Es
D/E | D/E/Es
D/E | D/E
D/E | D/E/Es
D/E | D/Es
D | D
D | | |
| HEVC 10bit 422 | Full-Feature
Free-Kernel | D/E
D/E | D/E
D/E | D/E
D/E | D
D | D/E
D/E | D/Es
D | D/Es
D | D
D | D/Es
D | | | | |
| HEVC 10bit 444 | Full-Feature
Free-Kernel | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | D/E
D/E | | | | |
| HEVC 12bit | Full-Feature
Free-Kernel | D
D |