QGStreamerVideoSource Class
La classe `QGStreamerVideoSource` fournit une source vidéo s'appuyant sur un élément GStreamer personnalisé. En savoir plus...
| En-tête : | #include <QGStreamerVideoSource> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake : | QT += multimedia |
| Depuis : | Qt 6.12 |
| En QML : | GStreamerVideoSource |
| Hérite de : | QObject |
Propriétés
- active : bool
- gstBinDescription : const QString
Fonctions publiques
| QGStreamerVideoSource(GstElement *gstElement, QObject *parent = nullptr) | |
| QGStreamerVideoSource(const QString &gstBinDescription, QObject *parent = nullptr) | |
| QString | gstBinDescription() const |
| GstElement * | gstElement() const |
| bool | isActive() const |
Emplacements publics
Signaux
| void | activeChanged(bool active) |
Description détaillée
Avertissement : la classe GStreamerVideoSource n'offre que des garanties de compatibilité limitées. Il n'existe aucune garantie de compatibilité au niveau du code source ou des binaires pour ces classes, ce qui signifie que le fonctionnement de l'API n'est garanti qu'avec la version de Qt sur laquelle l'application a été développée. Toutefois, les modifications incompatibles sont limitées au strict minimum et ne seront apportées que dans les versions mineures. Pour utiliser cette classe dans une application, liez-la à Qt::MultimediaPrivate (si vous utilisez CMake), et incluez l'en-tête #include <spi/qgstreamervideosource.h>.
Construisez QGStreamerVideoSource à partir d’une description bin GStreamer ou d’un fichier « GstElement » existant, puis associez-la à QMediaCaptureSession via QMediaCaptureSession::setNativeVideoSource().
Dans tous les cas standard, nous recommandons d’utiliser ` QCamera ` plutôt que cette classe, sauf si vous avez besoin d’une configuration spécifique à GStreamer pour gérer une source vidéo personnalisée.
Par défaut, cette classe est disponible dans les versions meta-qt6. Dans les versions personnalisées prenant en charge GStreamer, la fonctionnalité gstreamer_qt_api permet de l'activer.
QtMultimedia Pour que cette classe fonctionne, il faut l'exécuter avec le backend multimédia gstreamer.
QMediaCaptureSession session;
QGStreamerVideoSource videoSource(QStringLiteral("videotestsrc name=testsrc"));
session.setNativeVideoSource(&videoSource);
videoSource.start();Voir également QMediaCaptureSession et QCamera.
Documentation des propriétés
active : bool
Indique si la source vidéo est actuellement active.
Si la source vidéo a été connectée à un « QMediaCaptureSession », cette propriété indique si l’ GstElement sous-jacente est associée à l’« GstPipeline » au sein de la session de capture multimédia.
Fonctions d’accès :
| bool | isActive() const |
| void | setActive(bool active) |
Signal de notification :
| void | activeChanged(bool active) |
[read-only] gstBinDescription : const QString
Décrit la description du fichier binaire GStreamer associée à la source vidéo.
Si la source vidéo est inopérante ou a été créée à partir d'un fichier d'GstElement existant, la chaîne de cette propriété est vide.
Fonctions d'accès :
| QString | gstBinDescription() const |
Documentation des fonctions membres
[explicit] QGStreamerVideoSource::QGStreamerVideoSource(GstElement *gstElement, QObject *parent = nullptr)
Crée un objet `QGStreamerVideoSource` à partir d'un objet ` gstElement ` existant et d'un objet ` parent`.
L'élément doit fournir une source vidéo pouvant être utilisée par une session de capture. Le type GstElement est déclaré à l'avance dans l'en-tête QGStreamerVideoSource; il convient donc d'utiliser le type correspondant issu de la bibliothèque GStreamer.
Si l'élément spécifié est nul, la source vidéo construite est inopérante.
Remarque : la classe n’effectue aucune validation supplémentaire de l’élément fourni ; par conséquent, si l’élément spécifié ne représente pas une entrée vidéo pour GstPipeline, QGStreamerVideoSource et l’ QMediaCaptureSession associé peuvent présenter un comportement inattendu.
Remarque : QGStreamerVideoSource partage la propriété de l’ GstElement fournie avec l’appelant.
[explicit] QGStreamerVideoSource::QGStreamerVideoSource(const QString &gstBinDescription, QObject *parent = nullptr)
Crée un objet `QGStreamerVideoSource` à partir de la description du « bin » GStreamer ` gstBinDescription ` et d'un ` parent`.
Le backend GStreamer interprète la description et crée un bin pouvant servir de source vidéo pour une session de capture. Utilisez la méthode gstElement() pour accéder au bin créé.
Consultez la documentation GStreamer pour connaître la syntaxe de la chaîne de description.
S’il est impossible d’analyser la description spécifiée, empêchant ainsi la création du « GstBin », l’objet `QGStreamerVideoSource` construit est inopérant, la méthode ` gstElement()` renvoie ` nullptr`, et la méthode ` gstBinDescription()` renvoie une chaîne vide.
Remarque : QGStreamerVideoSource n’effectue aucune validation supplémentaire de la description « bin » fournie ; par conséquent, si l’ GstBin créé ne correspond pas à une entrée vidéo pour GstPipeline, QGStreamerVideoSource et l’ QMediaCaptureSession associé peuvent présenter un comportement inattendu.
Pour un meilleur contrôle de l'élément GStreamer sous-jacent, vous pouvez plutôt créer un objet `QGStreamerVideoSource` à partir d'un ` GstElement ` existant.
Voir également gstElement() et gstBinDescription().
GstElement *QGStreamerVideoSource::gstElement() const
Renvoie l'GstElement sous-jacente utilisée par la source vidéo, ou « nullptr » si la source vidéo est inopérante.
Si la source vidéo a été créée à partir d'une description « bin » de GStreamer, l'GstElement renvoyée est convertible en sous-classe de GstBin.
Remarque : cette méthode ne transfère pas la propriété de l’ GstElement.
[slot] void QGStreamerVideoSource::start()
Lance la source vidéo.
Cela revient à définir la propriété « active » sur « true ».
[slot] void QGStreamerVideoSource::stop()
Arrête la source vidéo.
Cela revient à définir la propriété « active » sur « false ».
© 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.