Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Qt 5.4 Multimedia Backends: Difference between revisions
AutoSpider (talk | contribs) (Convert ExpressionEngine section headers) |
mNo edit summary |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
For most features, Qt Multimedia builds upon the multimedia framework of the underlying system. Therefore there are several multimedia backends based on different technologies and APIs. The glue between platform specific libraries and Qt Multimedia is contained in a plugin. There are currently three kinds of plugins in Qt Multimedia: | For most features, Qt Multimedia builds upon the multimedia framework of the underlying system. Therefore there are several multimedia backends based on different technologies and APIs. The glue between platform specific libraries and Qt Multimedia is contained in a plugin. There are currently three kinds of plugins in Qt Multimedia: | ||
Line 17: | Line 12: | ||
==== Supported media player features by backend ==== | ==== Supported media player features by backend ==== | ||
{ | {| class="wikitable" | ||
| MediaPlayer control| X | X | X | X | X | X | | | | ||
| URL source (local and remote) | X | X | X | X | X | X | | ! DirectShow (Windows) | ||
| Stream source | X | X | | X | | | | ! Media Foundation (Windows) | ||
| Metadata | X | X | partial | X | X | X | | ! AV Foundation (Mac OS / iOS) | ||
| Playback rate | X | X | X | X | | X | | ! GStreamer (Unix) | ||
| Track selection | | | | X | | | | ! Android | ||
| HW decoding | | Only when using Angle | X | | X | X | | ! BlackBerry | ||
| Video window control | X | X | X | X | | X | | |- | ||
| Video widget control | | | X | X | | | | | MediaPlayer control | ||
| Video renderer control (includes OpenGL textures) | X | X | X (only Mac OS) | X | X | X | | | X | ||
| Audio probe | | X | | X | | | | | X | ||
| Video Probe | | X | | X | | | | | X | ||
| X | |||
| X | |||
| X | |||
|- | |||
| URL source (local and remote) | |||
| X | |||
| X | |||
| X | |||
| X | |||
| X | |||
| X | |||
|- | |||
| Stream source | |||
| X | |||
| X | |||
| | |||
| X | |||
| | |||
| | |||
|- | |||
| Metadata | |||
| X | |||
| X | |||
| partial | |||
| X | |||
| X | |||
| X | |||
|- | |||
| Playback rate | |||
| X | |||
| X | |||
| X | |||
| X | |||
| | |||
| X | |||
|- | |||
| Track selection | |||
| | |||
| | |||
| | |||
| X | |||
| | |||
| | |||
|- | |||
| HW decoding | |||
| | |||
| Only when using Angle | |||
| X | |||
| | |||
| X | |||
| X | |||
|- | |||
| Video window control | |||
| X | |||
| X | |||
| X | |||
| X | |||
| | |||
| X | |||
|- | |||
| Video widget control | |||
| | |||
| | |||
| X | |||
| X | |||
| | |||
| | |||
|- | |||
| Video renderer control (includes OpenGL textures) | |||
| X | |||
| X | |||
| X (only Mac OS) | |||
| X | |||
| X | |||
| X | |||
|- | |||
| Audio probe | |||
| | |||
| X | |||
| | |||
| X | |||
| | |||
| | |||
|- | |||
| Video Probe | |||
| | |||
| X | |||
| | |||
| X | |||
| | |||
| | |||
|} | |||
==== Supported camera features by backend ==== | ==== Supported camera features by backend ==== | ||
{ | |||
| Camera control | X | | X | X | X | X | | {|class="wikitable" | ||
| Video window control | | | | X | | | | | | ||
| Video widget control | X | | | X | | | | ! DirectShow (Windows) | ||
| Video renderer control (includes OpenGL textures) | X | | X | X | X | X | | ! Media Foundation (Windows) | ||
| ViewFinder settings | | | | resolution | | resolution, framerate, pixel format | | ! AV Foundation (Mac OS / iOS) | ||
| Image capture | X | | X | X | X | X | | ! GStreamer (Unix) | ||
| Capture destination | File | | File | File, Buffer | File, Buffer | File, Buffer | | ! Android | ||
| Image settings | | | | resolution | resolution, quality | resolution, quality | | ! BlackBerry | ||
| Zoom | | | | X | X | X | | |- | ||
| Flash | | | | X | X | X | | | Camera control | ||
| Focus | | | | only focused notification | mode, custom point | mode, custom point | | | X | ||
| Exposure | | | | Scene mode, compensation, ISO, aperture, ShutterSpeed | Scene mode, compensation | Scene mode | | | | ||
| Image Processing | | | | White Balance, Contrast, Brightness, Saturation, | White Balance | White Balance | | | X | ||
| Locks | | | | Focus | Focus, Exposure, White Balance | Focus, Exposure, White Balance | | | X | ||
| X | |||
| X | |||
|- | |||
| Video window control | |||
| | |||
| | |||
| | |||
| X | |||
| | |||
| | |||
|- | |||
| Video widget control | |||
| X | |||
| | |||
| | |||
| X | |||
| | |||
| | |||
|- | |||
| Video renderer control (includes OpenGL textures) | |||
| X | |||
| | |||
| X | |||
| X | |||
| X | |||
| X | |||
|- | |||
| ViewFinder settings | |||
| | |||
| | |||
| | |||
| resolution | |||
| | |||
| resolution, framerate, pixel format | |||
|- | |||
| Image capture | |||
| X | |||
| | |||
| X | |||
| X | |||
| X | |||
| X | |||
|- | |||
| Capture destination | |||
| File | |||
| | |||
| File | |||
| File, Buffer | |||
| File, Buffer | |||
| File, Buffer | |||
|- | |||
| Image settings | |||
| | |||
| | |||
| | |||
| resolution | |||
| resolution, quality | |||
| resolution, quality | |||
|- | |||
| Zoom | |||
| | |||
| | |||
| | |||
| X | |||
| X | |||
| X | |||
|- | |||
| Flash | |||
| | |||
| | |||
| | |||
| X | |||
| X | |||
| X | |||
|- | |||
| Focus | |||
| | |||
| | |||
| | |||
| only focused notification | |||
| mode, custom point | |||
| mode, custom point | |||
|- | |||
| Exposure | |||
| | |||
| | |||
| | |||
| Scene mode, compensation, ISO, aperture, ShutterSpeed | |||
| Scene mode, compensation | |||
| Scene mode | |||
|- | |||
| Image Processing | |||
| | |||
| | |||
| | |||
| White Balance, Contrast, Brightness, Saturation, | |||
| White Balance | |||
| White Balance | |||
|- | |||
| Locks | |||
| | |||
| | |||
| | |||
| Focus | |||
| Focus, Exposure, White Balance | |||
| Focus, Exposure, White Balance | |||
|} | |||
==== Supported recording features by backend ==== | ==== Supported recording features by backend ==== | ||
{ | {| class="wikitable" | ||
| Record camera | | | X | X | X | X | | | | ||
| Record audio | Fallback to audio backend | Fallback to audio backend | Fallback to audio backend | X | X | Fallback to audio backend | | ! DirectShow (Windows) | ||
| MetaData writer | | | | X | | | | ! Media Foundation (Windows) | ||
| Audio encoder settings | | | | X | X | X | | ! AV Foundation (Mac OS / iOS) | ||
| Video encoder settings | | | | X | X | X | | ! GStreamer (Unix) | ||
| Container settings | | | | X | X | | | ! Android | ||
! BlackBerry | |||
|- | |||
| Record camera | |||
| | |||
| | |||
| X | |||
| X | |||
| X | |||
| X | |||
|- | |||
| Record audio | |||
| Fallback to audio backend | |||
| Fallback to audio backend | |||
| Fallback to audio backend | |||
| X | |||
| X | |||
| Fallback to audio backend | |||
|- | |||
| MetaData writer | |||
| | |||
| | |||
| | |||
| X | |||
| | |||
| | |||
|- | |||
| Audio encoder settings | |||
| | |||
| | |||
| | |||
| X | |||
| X | |||
| X | |||
|- | |||
| Video encoder settings | |||
| | |||
| | |||
| | |||
| X | |||
| X | |||
| X | |||
|- | |||
| Container settings | |||
| | |||
| | |||
| | |||
| X | |||
| X | |||
| | |||
|} | |||
==== Supported audio decoding features by backend ==== | |||
{ | {| class="wikitable" | ||
| Decode audio | | X | | X | | | | | | ||
! DirectShow (Windows) | |||
! Media Foundation (Windows) | |||
! AV Foundation (Mac OS / iOS) | |||
! GStreamer (Unix) | |||
! Android | |||
! BlackBerry | |||
|- | |||
| Decode audio | |||
| | |||
| X | |||
| | |||
| X | |||
| | |||
| | |||
|} | |||
== Audio plugins == | == Audio plugins == |
Latest revision as of 11:18, 14 July 2015
For most features, Qt Multimedia builds upon the multimedia framework of the underlying system. Therefore there are several multimedia backends based on different technologies and APIs. The glue between platform specific libraries and Qt Multimedia is contained in a plugin. There are currently three kinds of plugins in Qt Multimedia:
- MediaService plugins, to provide media player, camera, radio, and recording features
- Audio plugins, to provide low-latency audio support
- PlaylistFormat plugins, to support a specific playlist file format
Plugins do not necessarily implement all possible features and different backends have different capabilities. The following tables give an overview of what is supported by each backend in Qt 5.4.
MediaService plugins
Supported media player features by backend
DirectShow (Windows) | Media Foundation (Windows) | AV Foundation (Mac OS / iOS) | GStreamer (Unix) | Android | BlackBerry | |
---|---|---|---|---|---|---|
MediaPlayer control | X | X | X | X | X | X |
URL source (local and remote) | X | X | X | X | X | X |
Stream source | X | X | X | |||
Metadata | X | X | partial | X | X | X |
Playback rate | X | X | X | X | X | |
Track selection | X | |||||
HW decoding | Only when using Angle | X | X | X | ||
Video window control | X | X | X | X | X | |
Video widget control | X | X | ||||
Video renderer control (includes OpenGL textures) | X | X | X (only Mac OS) | X | X | X |
Audio probe | X | X | ||||
Video Probe | X | X |
Supported camera features by backend
DirectShow (Windows) | Media Foundation (Windows) | AV Foundation (Mac OS / iOS) | GStreamer (Unix) | Android | BlackBerry | |
---|---|---|---|---|---|---|
Camera control | X | X | X | X | X | |
Video window control | X | |||||
Video widget control | X | X | ||||
Video renderer control (includes OpenGL textures) | X | X | X | X | X | |
ViewFinder settings | resolution | resolution, framerate, pixel format | ||||
Image capture | X | X | X | X | X | |
Capture destination | File | File | File, Buffer | File, Buffer | File, Buffer | |
Image settings | resolution | resolution, quality | resolution, quality | |||
Zoom | X | X | X | |||
Flash | X | X | X | |||
Focus | only focused notification | mode, custom point | mode, custom point | |||
Exposure | Scene mode, compensation, ISO, aperture, ShutterSpeed | Scene mode, compensation | Scene mode | |||
Image Processing | White Balance, Contrast, Brightness, Saturation, | White Balance | White Balance | |||
Locks | Focus | Focus, Exposure, White Balance | Focus, Exposure, White Balance |
Supported recording features by backend
DirectShow (Windows) | Media Foundation (Windows) | AV Foundation (Mac OS / iOS) | GStreamer (Unix) | Android | BlackBerry | |
---|---|---|---|---|---|---|
Record camera | X | X | X | X | ||
Record audio | Fallback to audio backend | Fallback to audio backend | Fallback to audio backend | X | X | Fallback to audio backend |
MetaData writer | X | |||||
Audio encoder settings | X | X | X | |||
Video encoder settings | X | X | X | |||
Container settings | X | X |
Supported audio decoding features by backend
DirectShow (Windows) | Media Foundation (Windows) | AV Foundation (Mac OS / iOS) | GStreamer (Unix) | Android | BlackBerry | |
---|---|---|---|---|---|---|
Decode audio | X | X |
Audio plugins
Audio backends implement QAudioInput, QAudioOutput, QAudioDeviceInfo and QSoundEffect
Here is the list of the current audio backends:
- Windows Multimedia
- CoreAudio (Mac OS / iOS)
- PulseAudio (Unix)
- Alsa (Unix)
- OpenSL ES (Android)
- QNX