Sur cette page

Présentation de la vidéo

Fonctionnalités vidéo

Qt Multimedia propose à la fois des classes C++ de haut et de bas niveau pour la lecture et la manipulation de données vidéo, ainsi que des types QML pour la lecture et l’enregistrement. Certaines des classes présentées ici recoupent celles décrites dans les sections « Présentation de la caméra » et « Présentation de l’audio ».

Détails de l'implémentation vidéo

Lecture de vidéos en C++

Vous pouvez utiliser la classe ` QMediaPlayer ` pour décoder un fichier vidéo, puis l'afficher à l'aide de ` QVideoWidget`, ` QGraphicsVideoItem` ou d'une classe personnalisée.

Voici un exemple d'utilisation de ` QVideoWidget` :

player = new QMediaPlayer;
player->setSource(QUrl("http://example.com/myclip1.mp4"));

videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);

videoWidget->show();
player->play();

Et voici un exemple avec ` QGraphicsVideoItem` :

player = new QMediaPlayer(this);

QGraphicsVideoItem *item = new QGraphicsVideoItem;
player->setVideoOutput(item);
graphicsView->scene()->addItem(item);
graphicsView->show();

player->setSource(QUrl("http://example.com/myclip4.ogv"));
player->play();

Lecture d’une vidéo en QML

Vous pouvez utiliser VideoOutput pour afficher du contenu fourni soit par un MediaPlayer, soit par un Camera. L’ VideoOutput est un composant visuel pouvant être intégré dans un QQuickScene ou un Window, tandis que le décodage des médias et le contrôle de la lecture sont gérés par l’ MediaPlayer ou l’ CaptureSession. Un élément Video a été fourni pour plus de commodité. Il combine les éléments MediaPlayer, VideoOutput et AudioOutput en un seul élément.

Utilisation des images vidéo de bas niveau

Qt Multimedia propose un certain nombre de classes de bas niveau pour faciliter quelque peu la gestion des images vidéo. Ces classes sont principalement utilisées lors de l'écriture de code qui traite des images vidéo ou provenant d'une caméra (par exemple, pour détecter des codes-barres ou appliquer un effet de vignette sophistiqué), ou qui nécessite d'afficher la vidéo d'une manière particulière qui n'est pas prise en charge autrement.

La classe ` QVideoFrame ` encapsule une image vidéo et permet de mapper son contenu dans la mémoire système à des fins de manipulation ou de traitement. L'utilisation de votre propre ` QVideoSink ` vous permet de recevoir ces images à partir de QMediaPlayer et QCamera.

Enregistrement vidéo

La classe centrale pour tout type de capture ou d’enregistrement audio et vidéo est ` QMediaCaptureSession ` (ou le type QML ` CaptureSession `). Vous pouvez connecter une ` QCamera ` (Camera en QML) et un ` QMediaRecorder ` (MediaRecorder) à la session, puis demander à l’enregistreur multimédia de démarrer l’enregistrement.

Formats multimédias pris en charge

Les formats multimédias pris en charge dépendent en fin de compte de la configuration du système cible.

Windows

Par défaut, les fonctionnalités disponibles sur une cible MS Windows dépendent de la version de Windows Media Player fournie avec le système d'exploitation. Reportez-vous à la documentation de Windows Media Player pour obtenir des informations officielles.

Indépendamment de Windows Media Player, il existe bien sûr de nombreux packs de codecs pouvant être installés. Consultez le site du guide des codecs pour quelques exemples.

Android

Consultez la page consacrée aux formats multimédias pris en charge par Android pour obtenir ces informations.

Linux

Sous Linux, il s'agit d'installer les bons plugins GStreamer.

Plug-ins GStreamer minimaux requis

  • gstreamer1.0-plugins-base
  • gstreamer1.0-plugins-good
  • gstreamer1.0-plugins-pulseaudio

Pour un environnement de bureau Linux, il est fortement recommandé d'installer gstreamer1.0-libav afin de bénéficier d'une bonne couverture des codecs, ainsi que gstreamer1.0-vaapi pour bénéficier de l'accélération matérielle.

Sur Linux embarqué, l'ensemble de plugins requis peut être quelque peu différent.

Détermination des formats multimédias pris en charge lors de l’exécution

Vous pouvez déterminer quels formats sont disponibles sur un système cible lors de l'exécution à l'aide de l'API statique QMediaFormat.

Exemples

Des exemples en C++ et en QML sont disponibles.

Exemples en C++

Camera Example

Montrent comment capturer une image fixe ou enregistrer une vidéo.

Media Player Example

Lecture de fichiers audio et vidéo à l'aide de Qt Widgets.

Exemples QML

Media Player

Lecture de fichiers audio et vidéo à l'aide de Qt Quick

QML Media Player Example

Lecture de fichiers audio et vidéo à l'aide du type MediaPlayer de QML.

QML Video Recorder

Enregistrement audio et vidéo à l'aide d'Qt Quick.

Documentation de référence

Classes C++

QAbstractVideoBuffer

Abstraction pour les données vidéo

QAbstractVideoBuffer::MapData

La structure QAbstractVideoBuffer::MapData décrit la disposition des plans mappés

QCapturableWindow

Utilisée pour obtenir les informations de base d'une fenêtre capturable

QGStreamerVideoSource

Source vidéo gérée par un élément GStreamer personnalisé

QMediaCaptureSession

Permet la capture de contenu audio et vidéo

QMediaPlayer

Permet la lecture de fichiers multimédias

QMediaRecorder

Utilisée pour l'encodage et l'enregistrement d'une session de capture

QPlaybackOptions

Permet un contrôle de bas niveau des options de lecture multimédia

QScreenCapture

Cette classe est utilisée pour capturer un écran

QVideoFrame

Représente une image de données vidéo

QVideoFrameFormat

Spécifie le format de flux d’une surface de présentation vidéo

QVideoFrameInput

Utilisé pour fournir des images vidéo personnalisées à QMediaRecorder ou à une sortie vidéo via QMediaCaptureSession

QVideoSink

Représente un récepteur générique pour les données vidéo

QVideoWidget

Widget qui affiche la vidéo produite par un objet multimédia

QWindowCapture

Cette classe est utilisée pour capturer une fenêtre

Types QML

CapturableWindow

Ce type sert à obtenir les informations de base d’une fenêtre pouvant être capturée via WindowCapture

CaptureSession

Permet la capture de contenu audio et vidéo

GStreamerVideoSource

Une source vidéo s'appuyant sur un binaire GStreamer personnalisé

MediaPlayer

Ajoute la lecture multimédia à une scène

MediaRecorder

Pour l'encodage et l'enregistrement des médias générés dans une CaptureSession

PlaybackOptions

Options de lecture multimédia de bas niveau

ScreenCapture

Ce type est utilisé pour la capture d'écran

Video

Un type pratique pour afficher une vidéo spécifiée

VideoOutput

Afficher la vidéo ou le viseur de la caméra

WindowCapture

Ce type est utilisé pour capturer une fenêtre

cameraDevice

Décrit un appareil photo

cameraFormat

Décrit un format vidéo pris en charge par un appareil photo

mediaMetaData

Fournit des métadonnées pour les fichiers multimédias

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.