Qt Multimedia Documentation

Advanced FFmpeg Configuration

Enable logging from FFmpeg and the Qt FFmpeg media backend

Enable experimental FFmpeg codecs

Configuring allowed network protocols

Configure hardware acceleration in backends

Audio Overview

raw access

Audio Features

Audio Implementation Details

Playing Compressed Audio

Recording Audio to a File

Low Latency Sound Effects

Low Level Audio Playback and Recording

Push and Pull

Decoding Compressed Audio to Memory

Spatial Audio

Reference Documentation

C++ Classes

QML Types

Examples

Camera Overview

camera_image_processing

Camera Features

The Lens Assembly

The Sensor

Image Processing

Recording for Posterity

Camera Implementation Details

Detecting and Selecting a Camera

Preview

Still Images

Movies

Controlling the Imaging Pipeline

Focus and Zoom

Exposure, Shutter Speed and Flash

Image Processing

Examples

C++ Examples

QML Examples

Reference Documentation

C++ Classes

QML Types

QT_NO_FFMPEG_XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY

cmake-variable-QT_NO_FFMPEG_XCODE_EMBED_FRAMEWORKS_CODE_SIGN_ON_COPY

Multimedia Overview

Features

Multimedia Components

Multimedia Recipes

Limitations

Changes from Previous Versions

Reference Documentation

qt_add_ios_ffmpeg_libraries

qt6_add_ios_ffmpeg_libraries

Synopsis

Description

Qt Multimedia on macOS and iOS

Limitations

Use of FFmpeg libraries on iOS

DR Libs, version 0.13.17

dr_libs

boost

libjpeg

zlib

FFmpeg, version 7.1.2

Signalsmith Stretch, version 1.0.0

Two-Level Segregated Fit, version v3.1

Building FFmpeg from source for Android on Linux

Get the FFmpeg source code

Prerequisites

Installing packages

Set environment variables

Configuring and building FFmpeg

Building FFmpeg from source for Android on macOS

Get the FFmpeg source code

Prerequisites

Installing Homebrew

Installing Homebrew packages

Set environment variables

Configuring and building FFmpeg

Building FFmpeg from source for Android on Windows

Get the FFmpeg source code

Prerequisites

Installing MSYS2

Preparing the MSYS environment for building with Mingw-w64

Set environment variables

Configuring and building FFmpeg

Building FFmpeg from source for iOS on macOS

Preparing build environment

Getting the FFmpeg source code

Configuring and building FFmpeg

Creating iOS frameworks from FFmpeg libraries

Creating a multiplatform binary framework bundle

Embedding frameworks

Building FFmpeg from source on Linux

Get the FFmpeg source code

Prerequisites

Installing packages

Configuring and building FFmpeg

Hardware Acceleration

Disabling Autodetect

RPATH and RUNPATH on Linux

Building FFmpeg

Building FFmpeg from source on macOS

Get the FFmpeg source code

Prerequisites

Installing Homebrew

Installing Homebrew packages

Configuring and building FFmpeg

Configuring and Building FFmpeg Universal Binaries

Building FFmpeg from source on Windows

Get the FFmpeg source code

Prerequisites

Installing MSYS2

Preparing the MSYS environment for building with Mingw-w64

Preparing the MSYS2 environment for the MSVC

Configuring and building FFmpeg

Building FFmpeg from source

Windows

macOS

Linux

iOS

Android

Building Qt Multimedia from sources

Building from source

Platform Notes

Linux

Changes to Qt Multimedia

New features in Qt 6

Removed features

Changed features

FFmpeg stub libraries on Linux and Android

Overview

Why Stubs Are Needed

What Stubs Are

How Stubs Work in Qt

Runtime Behavior and Security Notes

Qt Multimedia GStreamer backend

Limitations and Known Issues

Customization points

Raw pipeline access

Custom GStreamer elements as sinks and sources

QMediaPlayer: custom sources

Architectural Considerations.

Qt Multimedia

Getting started

Overviews and important topics

QML types

C++ classes

Licenses and attributions

Target platform and backend notes

The FFmpeg backend

Native backends

Changing backends

Target platform notes

Permissions

Reference and examples

Qt Multimedia on Linux

Audio backend requirements

Limitations on Linux using the Wayland compositor

Qt Multimedia C++ Classes

Namespaces

Classes

Qt Multimedia Module

Qt Multimedia Widgets Module

Qt Spatial Audio Module

Qt Multimedia module topics

Qt Multimedia on WebAssembly

Limitations

Qt Multimedia on Windows

Notes on COM

Qt Multimedia Widgets

Getting Started

References

Examples

Video Overview

Video Features

Video Implementation Details

Playing Video in C++

Playing Video in QML

Working with Low Level Video Frames

Recording Video

Supported Media Formats

Windows

Android

Linux

Minimum Required GStreamer Plugins

Determining Supported Media Formats at Runtime

Examples

C++ Examples

QML Examples

Reference Documentation

C++ Classes

QML Types

Audio Devices Example

Running the Example

Audio Output Example

Running the Example

Audio Recorder Example

Running the Example

Displaying the Window and Audio Settings

Recording Audio

Audio Source Example

Running the Example

Camera Example

Running the Example

The Camera constructor

setCamera()

Triggering capturing

QML Camera Application

Running the Example

Application structure

Using screen orientation to select layout

Controls for capturing

Image capturing

Zoom control

Flash and torch control

Media Player Example

Running the Example

Screen Capture Example

Running the Example

Application Structure

QML Media Player Example

Running the Example

Instantiating the MediaPlayer

Playback Controls

Playback Seeking and Audio

Metadata and Track Information

QML Video Example

Running the Example

Application Structure

Calculating and Displaying QML Painting Rate

QML Video Recorder

Running the Example

Overview

Recording

captureSession

recorder

controls

Selecting a video source

Selecting an audio input

Video Graphics Item Example

Running the Example

Video Widget Example

Running the Example

loudness

Google Play 16 KB page size compatibility requirement

Android supported media formats

Android foreground service permission

Info.plist

Audio QML Type

qtqml import syntax

Apple Lossless Audio Codec

AOMedia Video 1

Advanced Audio Coding

Advanced Video Coding

Audio Video Interleave

DOF

Dolby Digital

Dolby Digital Plus (EAC3)

Dolby TrueHD

Free Lossless Audio Codec

High Efficiency Video Coding (HEVC)

hyperfocal

ISO 639-2 code

MPEG-1 Audio Layer III or MPEG-2 Audio Layer III

MPEG-1

MPEG-2

MPEG-4

MPEG-4 Part 3 or MPEG-4 Audio (formally ISO/IEC 14496-3)

Matroska (MKV)

MIME type

MotionJPEG

Ogg

Opus Audio Format

pixel format

QuickTime

Sonification

Theora

VP8

VP9

Ogg Vorbis

Waveform Audio File Format

WebM

Windows Media Audio

Windows Media Player

Windows Media Video

gstreamer

GStreamer

Windows Media Player documentation

codec guide

volume controls

photo glossary

AudioInput

AudioOutput

Camera

CaptureSession

ImageCapture

MediaDevices

MediaPlayer

MediaRecorder

PlaybackOptions

ScreenCapture

Screen Capture Limitations

SoundEffect

Video

VideoOutput

WindowCapture

Window Capture Limitations

CapturableWindow

audioDevice

cameraDevice

cameraFormat

mediaFormat

mediaMetaData

Qt Multimedia Examples

Qt Multimedia Module C++ Classes

Using the Module

Building with CMake

Qt Multimedia Widgets C++ Classes

Qt Multimedia QML Types

QML Types

Qt Spatial Audio Module