Sur cette page

Vue d'ensemble de la vidéo

Caractéristiques de la vidéo

Qt Multimedia propose des classes C++ de haut et de bas niveau pour la lecture et la manipulation des données vidéo, ainsi que des types QML pour la lecture et l'enregistrement. Certaines des classes présentées ici se recoupent avec celles présentées dans les sections Vue d'ensemble de la caméra et Vue d'ensemble 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 et l'afficher à l'aide de QVideoWidget, QGraphicsVideoItem, ou d'une classe personnalisée.

Voici un exemple d'utilisation de la classe QVideoWidget:

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

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

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

Et 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 rendre le contenu fourni par MediaPlayer ou Camera. VideoOutput est un composant visuel qui peut être intégré dans une QQuickScene ou Window, tandis que le décodage des médias et le contrôle de la lecture sont gérés par MediaPlayer ou CaptureSession. Un élément Video a été fourni pour des raisons de commodité. Il combine les éléments MediaPlayer, VideoOutput et AudioOutput en un seul élément.

Travailler avec des images vidéo de bas niveau

Qt Multimedia propose un certain nombre de classes de bas niveau pour faciliter la manipulation des images vidéo. Ces classes sont principalement utilisées lors de l'écriture d'un code qui traite des images vidéo ou de caméra (par exemple, la détection de codes-barres ou l'application d'un effet de vignette fantaisiste), ou qui doit afficher la vidéo d'une manière spéciale qui n'est pas prise en charge par ailleurs.

La classe QVideoFrame encapsule une image vidéo et permet de mapper son contenu dans la mémoire du système à des fins de manipulation ou de traitement. L'utilisation de votre propre QVideoSink vous permet de recevoir ces trames 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 un QCamera (Camera in QML) et un QMediaRecorder (MediaRecorder) à la session, puis demander à l'enregistreur de médias de commencer l'enregistrement.

Formats de médias pris en charge

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

Windows

Par défaut, ce qui est disponible sur une cible MS Windows dépend de la version de Windows Media Player fournie avec le système d'exploitation. Voir la documentation de Windows Media Player pour des informations officielles.

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

Android

Voir les formats de médias pris en charge par Android pour cette information.

Linux

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

Plugins GStreamer minimum requis

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

Pour une cible Linux, il est fortement recommandé d'avoir gstreamer1.0-libav pour une bonne couverture des codecs et gstreamer1.0-vaapi pour obtenir l'accélération matérielle.

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

Détermination des formats de médias pris en charge au moment de l'exécution

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

Exemples de formats

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

Exemples C++

Camera Example

Montre 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 de 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 du plan mappé.

QCapturableWindow

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

QMediaCaptureSession

Permet la capture de contenu audio et vidéo

QMediaPlayer

Permet la lecture de fichiers multimédias

QMediaRecorder

Permet d'encoder et d'enregistrer une session de capture

QPlaybackOptions

Permet le contrôle de bas niveau des options de lecture des médias

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ée pour fournir des cadres vidéo personnalisés à QMediaRecorder ou une sortie vidéo via QMediaCaptureSession

QVideoSink

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

QVideoWidget

Widget qui présente la vidéo produite par un objet média

QWindowCapture

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

Types QML

CapturableWindow

Le type est utilisé pour obtenir les éléments de base d'une fenêtre disponible pour la capture via WindowCapture.

CaptureSession

Permet la capture de contenu audio et vidéo

MediaPlayer

Ajoute la lecture de médias à une scène

MediaRecorder

Permet d'encoder et d'enregistrer les médias générés dans une CaptureSession

PlaybackOptions

Options de lecture de médias de bas niveau

ScreenCapture

Ce type est utilisé pour capturer un écran

Video

Un type pratique pour afficher une vidéo spécifique

VideoOutput

Rendu d'une vidéo ou d'un viseur de 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.