Qt 5.9 | Qt Multimedia | Multimedia

Qt 5.9.4 Reference Documentation

# Multimedia

Multimedia support in Qt is provided by the Qt Multimedia module. The Qt Multimedia module provides a rich feature set that enables you to easily take advantage of a platform's multimedia capabilities such as media playback and the use of camera and radio devices.

## Features

Here are some examples of what can be done with Qt Multimedia APIs:

- Access raw audio devices for input and output
- Play low latency sound effects
- Play media files in playlists (such as compressed audio or video files)
- Record audio and compress it
- Tune and listen to radio stations
- Use a camera, including viewfinder, image capture, and movie recording
- Play 3D positional audio with Qt Audio Engine
- Decode audio media files into memory for processing
- Accessing video frames or audio buffers as they are played or recorded

## Multimedia Components

Qt's multimedia APIs are categorized into four main components. More information (including background information and class references) is available here:

- Audio Overview
- Video Overview
- Camera Overview
- Radio Overview

## Multimedia Recipes

For some quick recipes, look at the overviews above and consult this table:

Use case | Examples | QML Types | C++ Classes
--- | --- | --- | ---
Playing a sound effect |  |  | QSoundEffect
Playing low latency audio | audioinput, spectrum |  | QAudioOutput
Playing encoded audio (MP3, AAC etc) | player | Audio, MediaPlayer | QMediaPlayer
Accessing raw audio input data | spectrum, audioinput |  | QAudioInput
Recording encoded audio data | audiorecorder |  | QAudioRecorder
Discovering raw audio devices | audiodevices |  | QAudioDeviceInfo
Video Playback | player, qmlvideo, qmlvideofx | MediaPlayer, VideoOutput, Video | QMediaPlayer, QVideoWidget, QGraphicsVideoItem
Video Processing | qmlvideofx | MediaPlayer, VideoOutput | QMediaPlayer, QAbstractVideoSurface, QVideoFrame
Listening to the radio | declarative-radio | Radio, RadioData | QRadioTuner, QRadioData
Accessing camera viewfinder | camera, declarative-camera | Camera, VideoOutput | QCamera, QVideoWidget, QGraphicsVideoItem
Viewfinder processing |  | Camera, VideoOutput | QCamera, QAbstractVideoSurface, QVideoFrame
Capturing photos | camera, declarative-camera | Camera | QCamera, QCameraImageCapture
Capturing movies | camera, declarative-camera | Camera | QCamera, QMediaRecorder
3D sound sources |  | Audio Engine | AudioEngine, Sound |

## Limitations

The Qt Multimedia APIs build upon the multimedia framework of the underlying platform. This can mean that support for various codecs or containers can vary between machines, depending on what the end user has installed.

## Advanced Usage

For developers wishing to access some platform specific settings, or to port the Qt Multimedia APIs to a new platform or technology, see Multimedia Backend Development.

## Changes from Previous Versions

If you previously used Qt Multimedia in Qt 4, or used Qt Multimedia Kit in Qt Mobility, please see Changes in Qt Multimedia for more information on what changed, and what you might need to change when porting code.

## Reference Documentation

### QML Types

The QML types are accessed by using:

      import QtMultimedia 5.8

Video | A convenience type for showing a specified video
Audio | Add audio playback to a scene
MediaPlayer | Add media playback to a scene
Camera | Access viewfinder frames, and take photos and movies
CameraCapture | An interface for capturing camera images
CameraExposure | An interface for exposure related camera settings
CameraFlash | An interface for flash related camera settings
CameraFocus | An interface for focus related camera settings
CameraImageProcessing | An interface for camera capture related settings
CameraRecorder | Controls video recording with the Camera
QtMultimedia | Provides a global object with useful functions from Qt Multimedia
Playlist | For specifying a list of media to be played
PlaylistItem | Defines an item in a Playlist
Radio | Access radio functionality from a QML application
RadioData | Access RDS data from a QML application
Torch | Simple control over torch functionality
SoundEffect | Type provides a way to play sound effects in QML
VideoOutput | Render video or camera viewfinder

The following types are accessed by using Qt Audio Engine:

      import QtAudioEngine 1.1

AttenuationModelInverse | Defines a non-linear attenuation curve for a Sound
AttenuationModelLinear | Defines a linear attenuation curve for a Sound
AudioCategory | Control all active sound instances by group
AudioEngine | Organize all your 3d audio content in one place
AudioListener | Control global listener parameters
AudioSample | Load audio samples, mostly .wav
PlayVariation | Define a playback variation for sounds. So each time the playback of the same sound can be a slightly different even with the same AudioSample
Sound | Define a variety of samples and parameters to be used for SoundInstance
SoundInstance | Play 3d audio content

### Multimedia Classes

QAudio | Contains enums used by the audio classes
QAudioBuffer | Represents a collection of audio samples with a specific format and sample rate
QAudioBuffer::StereoFrame | Simple wrapper for a stereo audio frame
QAudioDecoder | Allows decoding audio
QAudioDeviceInfo | Interface to query audio devices and their functionality
QAudioFormat | Stores audio stream parameter information
QAudioInput | Interface for receiving audio data from an audio input device
QAudioOutput | Interface for sending audio data to an audio output device
QAudioProbe | Allows you to monitor audio being played or recorded
QAbstractAudioDeviceInfo | Base class for audio backends
QAbstractAudioInput | Access for QAudioInput to access the audio device provided by the plugin
QAbstractAudioOutput | Base class for audio backends
QAudioSystemPlugin | Abstract base for audio plugins
QSound | Method to play .wav sound files
QSoundEffect | Way to play low latency sound effects
QCamera::FrameRateRange | A FrameRateRange represents a range of frame rates as minimum and maximum rate
QCamera | Interface for system camera devices
QCameraExposure | Interface for exposure related camera settings
QCameraFocus | Interface for focus and zoom related camera settings
QCameraFocusZone | Information on zones used for autofocusing a camera
QCameraImageCapture | Used for the recording of media content
QCameraImageProcessing | Interface for image processing related camera settings
QCameraInfo | General information about camera devices
QCameraViewfinderSettings | Set of viewfinder settings
QMediaContent | Access to the resources relating to a media content
QMediaPlayer | Allows the playing of a media source
QMediaPlaylist | List of media content to play
QMediaResource | Description of a media resource
QMediaBindableInterface | The base class for objects extending media objects functionality
QMediaControl | Base interface for media service controls
QMediaMetaData | Provides identifiers for meta-data attributes
QMediaObject | Common base for multimedia objects
QMediaService | Common base class for media service implementations
QMediaTimeInterval | Represents a time interval with integer precision
QMediaTimeRange | Represents a set of zero or more disjoint time intervals
QMultimedia | Contains miscellaneous identifiers used throughout the Qt Multimedia library
QRadioData | Interfaces to the RDS functionality of the system radio
QRadioTuner | Interface to the systems analog radio device
QAudioRecorder | Used for the recording of audio
QAudioEncoderSettings | Set of audio encoder settings
QImageEncoderSettings | Set of image encoder settings
QVideoEncoderSettings | Set of video encoder settings
QMediaRecorder | Used for the recording of media content
QAbstractPlanarVideoBuffer | Abstraction for planar video data
QAbstractVideoBuffer | Abstraction for video data
QAbstractVideoFilter | Represents a filter that is applied to the video frames received by a VideoOutput type
QVideoFilterRunnable | Represents the implementation of a filter that owns all graphics and computational resources, and performs the actual filtering or calculations
QAbstractVideoSurface | Base class for video presentation surfaces
QVideoFrame | Represents a frame of video data
QVideoProbe | Allows you to monitor video frames being played or recorded
QVideoSurfaceFormat | Specifies the stream format of a video presentation surface
QGraphicsVideoItem | Graphics item which display video produced by a QMediaObject
QVideoWidget | Widget which presents video produced by a media object