QGStreamerVideoSource Class
Die Klasse „QGStreamerVideoSource“ stellt eine Videoquelle bereit, die auf einem benutzerdefinierten GStreamer-Element basiert. Mehr...
| Header: | #include <QGStreamerVideoSource> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(mytarget PRIVATE Qt6::Multimedia) |
| qmake: | QT += multimedia |
| Seit: | Qt 6.12 |
| In QML: | GStreamerVideoSource |
| Erbt von: | QObject |
Eigenschaften
- active : bool
- gstBinDescription : const QString
Öffentliche Funktionen
| QGStreamerVideoSource(GstElement *gstElement, QObject *parent = nullptr) | |
| QGStreamerVideoSource(const QString &gstBinDescription, QObject *parent = nullptr) | |
| QString | gstBinDescription() const |
| GstElement * | gstElement() const |
| bool | isActive() const |
Öffentliche Slots
Signale
| void | activeChanged(bool active) |
Ausführliche Beschreibung
Warnung: Die Klasse „ GStreamerVideoSource “ bietet nur eingeschränkte Kompatibilitätsgarantien. Es gibt keine Garantien hinsichtlich der Quellcode- oder Binärkompatibilität für diese Klassen, was bedeutet, dass die API nur mit der Qt-Version garantiert funktioniert, auf deren Basis die Anwendung entwickelt wurde. Inkompatible Änderungen sollen jedoch auf ein Minimum beschränkt bleiben und werden nur in Minor-Releases vorgenommen. Um die Klasse in einer Anwendung zu verwenden, verknüpfen Sie mit „ Qt::MultimediaPrivate “ (bei Verwendung von CMake) und fügen Sie den Header #include <spi/qgstreamervideosource.h> ein.
Erstellen Sie `QGStreamerVideoSource` aus einer GStreamer-Bin-Beschreibung oder aus einem vorhandenen ` GstElement ` und fügen Sie es über ` QMediaCaptureSession::setNativeVideoSource()` an ` QMediaCaptureSession ` an.
In allen Standardfällen empfehlen wir die Verwendung von „ QCamera “ anstelle dieser Klasse, es sei denn, Sie benötigen eine GStreamer-spezifische Konfiguration zur Verarbeitung einer benutzerdefinierten Videoquelle.
Standardmäßig ist die Klasse in meta-qt6-Builds verfügbar. In benutzerdefinierten Builds mit GStreamer-Unterstützung kann die Funktion „ gstreamer_qt_api “ sie aktivieren.
QtMultimedia Damit diese Klasse funktioniert, muss sie mit dem Medien-Backend „ gstreamer “ ausgeführt werden.
QMediaCaptureSession session;
QGStreamerVideoSource videoSource(QStringLiteral("videotestsrc name=testsrc"));
session.setNativeVideoSource(&videoSource);
videoSource.start();Siehe auch „ QMediaCaptureSession “ und „ QCamera “.
Dokumentation zu den Eigenschaften
active : bool
Gibt an, ob die Videoquelle derzeit aktiv ist.
Wenn die Videoquelle mit einem „ QMediaCaptureSession “ verbunden wurde, gibt diese Eigenschaft an, ob die zugrunde liegende „ GstElement “ im Rahmen der Medienaufnahmesitzung mit dem „ GstPipeline “ verbunden ist.
Zugriffsfunktionen:
| bool | isActive() const |
| void | setActive(bool active) |
Benachrichtigungssignal:
| void | activeChanged(bool active) |
[read-only] gstBinDescription : const QString
Beschreibt die GStreamer-Bin-Beschreibung, die der Videoquelle zugeordnet ist.
Wenn die Videoquelle nicht funktionsfähig ist oder aus einem vorhandenen „ GstElement “ erstellt wurde, ist die Eigenschaft „string“ leer.
Zugriffsfunktionen:
| QString | gstBinDescription() const |
Dokumentation der Mitgliedsfunktionen
[explicit] QGStreamerVideoSource::QGStreamerVideoSource(GstElement *gstElement, QObject *parent = nullptr)
Erstellt eine `QGStreamerVideoSource` aus einer vorhandenen ` gstElement ` und einer ` parent`.
Das Element muss eine Videoquelle bereitstellen, die von einer Aufnahmesitzung verwendet werden kann. Der Typ ` GstElement ` ist in der Header-Datei ` QGStreamerVideoSource ` vorangekündigt, daher muss der entsprechende Typ aus der GStreamer-Bibliothek verwendet werden.
Ist das angegebene Element null, ist die erstellte Videoquelle nicht funktionsfähig.
Hinweis: Die Klasse führt keine zusätzliche Validierung des bereitgestellten Elements durch. Wenn das angegebene Element also keinen Videoeingang für ` GstPipeline` darstellt, können sich `QGStreamerVideoSource` und die zugehörige ` QMediaCaptureSession ` möglicherweise nicht wie erwartet verhalten.
Hinweis: QGStreamerVideoSource teilt sich die Eigentumsrechte an der bereitgestellten ` GstElement ` mit dem Aufrufer.
[explicit] QGStreamerVideoSource::QGStreamerVideoSource(const QString &gstBinDescription, QObject *parent = nullptr)
Erstellt eine `QGStreamerVideoSource` aus der GStreamer-Bin-Beschreibung ` gstBinDescription ` und einem ` parent`.
Das GStreamer-Backend interpretiert die Beschreibung und erstellt einen Bin, der als Videoquelle für eine Aufnahmesitzung dienen kann. Verwenden Sie die Methode ` gstElement()` , um auf den erstellten Bin zuzugreifen.
Die Syntax der Beschreibungszeichenfolge finden Sie in der GStreamer-Dokumentation.
Wenn die angegebene Beschreibung nicht geparst werden kann und die Erstellung von „ GstBin “ dadurch verhindert wird, ist die erstellte „QGStreamerVideoSource“ nicht funktionsfähig, „ gstElement()“ gibt „ nullptr “ zurück und „ gstBinDescription()“ gibt eine leere Zeichenkette zurück.
Hinweis: QGStreamerVideoSource führt keine zusätzliche Validierung der bereitgestellten Bin-Beschreibung durch. Wenn das erstellte ` GstBin ` also keinen Videoeingang für ` GstPipeline` darstellt, können sich QGStreamerVideoSource und die zugehörige ` QMediaCaptureSession ` möglicherweise nicht wie erwartet verhalten.
Um das zugrunde liegende GStreamer-Element besser steuern zu können, können Sie QGStreamerVideoSource stattdessen aus einer vorhandenen ` GstElement ` erstellen.
Siehe auch gstElement() und gstBinDescription().
GstElement *QGStreamerVideoSource::gstElement() const
Gibt das zugrunde liegende „ GstElement “ zurück, das von der Videoquelle verwendet wird, oder „ nullptr “, falls die Videoquelle nicht funktionsfähig ist.
Wenn die Videoquelle aus einer GStreamer-Bin-Beschreibung erstellt wurde, lässt sich das zurückgegebene ` GstElement ` in die Unterklasse ` GstBin ` konvertieren.
Hinweis: Die Methode überträgt nicht das Eigentumsrecht an der ` GstElement`.
[slot] void QGStreamerVideoSource::start()
Startet die Videoquelle.
Entspricht der Einstellung der Eigenschaft „ active “ auf „ true “.
[slot] void QGStreamerVideoSource::stop()
Hält die Videoquelle an.
Dies entspricht der Einstellung der Eigenschaft „ active “ auf „ 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.