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.
- Utilisez la méthode QMediaFormat::isSupported() sur un objet QMediaFormat::ConversionMode pour interroger un format spécifique.
- Utilisez la méthode QMediaFormat::supportedFileFormats() sur un objet ` QMediaFormat ` créé par défaut pour obtenir la liste de tous les formats de fichiers pris en charge.
Exemples
Des exemples en C++ et en QML sont disponibles.
Exemples en C++
Montrent comment capturer une image fixe ou enregistrer une vidéo. | |
Lecture de fichiers audio et vidéo à l'aide de Qt Widgets. |
Exemples QML
Lecture de fichiers audio et vidéo à l'aide de Qt Quick | |
Lecture de fichiers audio et vidéo à l'aide du type MediaPlayer de QML. | |
Enregistrement audio et vidéo à l'aide d'Qt Quick. |
Documentation de référence
Classes C++
Abstraction pour les données vidéo | |
La structure QAbstractVideoBuffer::MapData décrit la disposition des plans mappés | |
Utilisée pour obtenir les informations de base d'une fenêtre capturable | |
Source vidéo gérée par un élément GStreamer personnalisé | |
Permet la capture de contenu audio et vidéo | |
Permet la lecture de fichiers multimédias | |
Utilisée pour l'encodage et l'enregistrement d'une session de capture | |
Permet un contrôle de bas niveau des options de lecture multimédia | |
Cette classe est utilisée pour capturer un écran | |
Représente une image de données vidéo | |
Spécifie le format de flux d’une surface de présentation vidéo | |
Utilisé pour fournir des images vidéo personnalisées à QMediaRecorder ou à une sortie vidéo via QMediaCaptureSession | |
Représente un récepteur générique pour les données vidéo | |
Widget qui affiche la vidéo produite par un objet multimédia | |
Cette classe est utilisée pour capturer une fenêtre |
Types QML
Ce type sert à obtenir les informations de base d’une fenêtre pouvant être capturée via WindowCapture | |
Permet la capture de contenu audio et vidéo | |
Une source vidéo s'appuyant sur un binaire GStreamer personnalisé | |
Ajoute la lecture multimédia à une scène | |
Pour l'encodage et l'enregistrement des médias générés dans une CaptureSession | |
Options de lecture multimédia de bas niveau | |
Ce type est utilisé pour la capture d'écran | |
Un type pratique pour afficher une vidéo spécifiée | |
Afficher la vidéo ou le viseur de la caméra | |
Ce type est utilisé pour capturer une fenêtre | |
Décrit un appareil photo | |
Décrit un format vidéo pris en charge par un appareil photo | |
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.