QtWebEngine/VideoAcceleration: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
m (add introduction draft)
Line 2: Line 2:


== Introduction ==
== Introduction ==
- What is video acceleration and do you really need it? Could you use a proprietary solution?


- To off-load CPU, especially important for embedded devices
One of the most complex operations performed in internet browsers are video decoding and encoding. These compute operations can be executed as part of software implementation which runs on CPU, or the can be hardware accelerated and executed by dedicated hardware chips. By using hardware acceleration, the CPU can be offloaded and it is able to run meanwhile other execution tasks. This results in better interaction performance and it is crucial for embedded devices, where CPU processing power is limited. Moreover, using optimized dedicated hardware usually results in better video performance, quality and lower power consumption compared to software one.
 
=== TODO


- Needs to be supported by GPU hardware and drivers, usually only supporting some encoding
- Needs to be supported by GPU hardware and drivers, usually only supporting some encoding
- Link to Chromium docs on video acceleration
- Link to Chromium docs on video acceleration



Revision as of 09:50, 6 November 2017

Qt WebEngine does not currently support hardware accelerated decoding of videos.

Introduction

One of the most complex operations performed in internet browsers are video decoding and encoding. These compute operations can be executed as part of software implementation which runs on CPU, or the can be hardware accelerated and executed by dedicated hardware chips. By using hardware acceleration, the CPU can be offloaded and it is able to run meanwhile other execution tasks. This results in better interaction performance and it is crucial for embedded devices, where CPU processing power is limited. Moreover, using optimized dedicated hardware usually results in better video performance, quality and lower power consumption compared to software one.

=== TODO

- Needs to be supported by GPU hardware and drivers, usually only supporting some encoding - Link to Chromium docs on video acceleration

Platforms

  • Linux: Video acceleration (VA) API, GStreamer, and proprietary solutions
  • Windows: DirectX API (DXVA)
  • macOS: Video Decode Acceleration framework

Chromium

Official Chromium enables video acceleration for Windows, macOS, and ChromeOS builds.

Regular Linux builds do not have video acceleration enabled, unless patched downstream by Linux distributions.

Qt WebEngine

Current status of video decode acceleration for Qt WebEngine 5.9 and 5.10 is as follows:

Being considered:

  • Enabling VA API in Qt 5.10 (?) for Chromium 61
  • Implementing a punch hole in scenegraph
  • Supporting GStreamer