How to Choose Video Processing Software for Intel Hardware

By Ekaterina Mekhnetsova,

Published: 03/23/2021

There are multiple ways to accelerate Intel hardware for video processing. To choose the option that would benefit you the most, ensure that your goals align with the scope of what that option offers to you.

Intel® oneAPI Video Processing Library (oneVPL)

oneVPL specializes on elementary stream decode and encode operations and offers a limited set of related frame processing operations. Its interfaces are very similar across Windows and Linux. 

Reasons to choose:

  • Your product differentiates on decode and encode features.
  • You are looking for an option that allows greater level of control over hardware capabilities than what is offered by standard media frameworks.
  • You are interested in an easy-to-maintain solution that is intended for Linux and Windows.

Reasons not to choose:

You are working on an application that requires functionality outside of oneVPL scope, such as audio processing, container support, or network protocols. Media frameworks would be a better option in this case.

Media Frameworks: FFmpeg and GStreamer

FFmpeg and GStreamer are enabled with Libva and DirectX Video Acceleration (DXVA).

Reasons to choose:

  • You are looking for a full media solution that includes network protocols, container support, audio support, and so on.
  • You have time constraints and want a simplified approach to building end-to-end pipelines.
  • You only need basic encode and decode operations.

Reasons not to choose:

  • You are looking for a portable solution that offers more control over hardware capabilities. oneVPL would be a better option in this case.
  • Your project does not require as many capabilities as the frameworks offer. Libva, DXVA, or oneVPL might be a better option in this case.

Low-level Hardware or OS-specific Solutions: Libva and DXVA

HW-specific and OS-specific options, such as Libva and DirectX Video Acceleration (DXVA), offer the greatest control but also require the highest programming effort with lowest portability.

Reasons to choose:

  • You are looking for an option that offers the most control over hardware capabilities.
  • You are looking for a solution that allows you to work directly with the OS graphics stack.
  • Your project is already based on Libva or DXVA.

Reasons not to choose:

  • You are looking for a portable solution for an application with a more complicated pipeline than just decoding and rendering. oneVPL would be a better option in this case.

Solution Comparison

The following table summarizes the main differences between various solutions available for video processing:

 

Media Frameworks (FFmpeg and GStreamer)

Intel® oneAPI Video Processing Library (oneVPL)

Low-level/OS-specific solutions (Libva and DXVA)

Functionality Full stack (network protocols, container support, audio support) Elementary video stream processing with a limited set of frame processing operations  Working directly with the OS graphics stack
Portability High High Low
Level of control over HW capabilities Low Medium High

 

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.