Video-Übersicht
Video-Funktionen
Qt Multimedia bietet sowohl High-Level- als auch Low-Level-C++-Klassen zum Abspielen und Bearbeiten von Videodaten sowie QML-Typen für die Wiedergabe und Aufzeichnung. Einige der hier vorgestellten Klassen überschneiden sich mit denen, die in der Kamera-Übersicht und der Audio-Übersicht vorgestellt werden.
Details zur Video-Implementierung
Wiedergabe von Videos in C++
Sie können die Klasse „ QMediaPlayer “ verwenden, um eine Videodatei zu dekodieren, und diese anschließend mithilfe von „ QVideoWidget “, „ QGraphicsVideoItem “ oder einer benutzerdefinierten Klasse anzeigen.
Hier ist ein Beispiel für die Verwendung von ` QVideoWidget`:
player = new QMediaPlayer;
player->setSource(QUrl("http://example.com/myclip1.mp4"));
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();
player->play();Und ein Beispiel mit ` 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();Wiedergabe von Videos in QML
Sie können „ VideoOutput “ verwenden, um Inhalte wiederzugeben, die entweder von einem „ MediaPlayer “ oder einem „ Camera “ bereitgestellt werden. „ VideoOutput “ ist eine visuelle Komponente, die in eine „QQuickScene“ oder eine „ Window “ eingebettet werden kann, während die gesamte Mediendekodierung und die Wiedergabesteuerung von „ MediaPlayer “ oder „ CaptureSession “ übernommen werden. Zur Vereinfachung wurde das Element „ Video “ bereitgestellt. Es vereint die Elemente „ MediaPlayer “, „ VideoOutput “ und „ AudioOutput “ in einem Element.
Arbeiten mit Low-Level-Videobildern
Qt Multimedia bietet eine Reihe von Low-Level-Klassen, um den Umgang mit Videoframes etwas zu vereinfachen. Diese Klassen werden in erster Linie beim Schreiben von Code verwendet, der Video- oder Kameraframes verarbeitet (beispielsweise zum Erkennen von Barcodes oder zum Anwenden eines ausgefallenen Vignetteneffekts) oder der Videos auf eine spezielle Weise anzeigen muss, die sonst nicht unterstützt wird.
Die Klasse „ QVideoFrame “ kapseln ein Videoframe und ermöglicht es, den Inhalt zur Bearbeitung oder Verarbeitung in den Systemspeicher abzubilden. Durch die Verwendung eines eigenen „ QVideoSink “ können Sie diese Frames von „ QMediaPlayer “ und „ QCamera “ empfangen.
Videoaufzeichnung
Die zentrale Klasse für jede Art der Erfassung oder Aufzeichnung von Audio und Video ist ` QMediaCaptureSession ` (oder der QML-Typ ` CaptureSession `). Sie können eine ` QCamera ` (Kamera in QML) und eine ` QMediaRecorder ` (MediaRecorder) mit der Sitzung verbinden und anschließend den Medienrekorder auffordern, die Aufzeichnung zu starten.
Unterstützte Medienformate
Welche Medienformate letztendlich unterstützt werden, hängt von der Konfiguration des Zielsystems ab.
Windows
Standardmäßig hängt die Verfügbarkeit auf einem MS-Windows-Zielsystem von der Version des Windows Media Players ab, die im Betriebssystem enthalten ist. Offizielle Informationen finden Sie in der Dokumentation zum Windows Media Player.
Unabhängig vom Windows Media Player gibt es natürlich zahlreiche Codec-Pakete, die installiert werden können. Einige Beispiele finden Sie auf der Codec-Guide -Website.
Android
Informationen hierzu finden Sie unter „Von Android unterstützte Medienformate “.
Linux
Unter Linux geht es darum, die richtigen GStreamer -Plugins zu installieren.
Mindestanforderungen an GStreamer-Plugins
- gstreamer1.0-plugins-base
- gstreamer1.0-plugins-good
- gstreamer1.0-plugins-pulseaudio
Für einen Linux-Desktop wird dringend empfohlen, „ gstreamer1.0-libav “ für eine gute Codec-Abdeckung und „ gstreamer1.0-vaapi “ für Hardwarebeschleunigung zu installieren.
Auf Embedded-Linux-Systemen kann der erforderliche Satz an Plugins etwas abweichen.
Ermittlung der unterstützten Medienformate zur Laufzeit
Mithilfe der statischen API „ QMediaFormat “ können Sie zur Laufzeit ermitteln, welche Formate auf einem Zielsystem verfügbar sind.
- Verwenden Sie ` QMediaFormat::isSupported()` auf einem ` QMediaFormat::ConversionMode `, um ein bestimmtes Format abzufragen.
- Verwenden Sie ` QMediaFormat::supportedFileFormats()` auf einem standardmäßig erstellten ` QMediaFormat `, um alle unterstützten Dateiformate abzurufen.
Beispiele
Es stehen sowohl C++- als auch QML-Beispiele zur Verfügung.
C++-Beispiele
Zeigt, wie man ein Standbild aufnimmt oder ein Video aufzeichnet. | |
Wiedergabe von Audio und Video mit „ Qt Widgets “. |
QML-Beispiele
Wiedergabe von Audio und Video mit Qt Quick | |
Wiedergabe von Audio und Video mit dem QML-Typ „MediaPlayer“. | |
Aufnahme von Audio und Video mit „ Qt Quick “. |
Referenzdokumentation
C++-Klassen
Abstraktion für Videodaten | |
Die Struktur `QAbstractVideoBuffer::MapData` beschreibt das Layout der abgebildeten Ebenen | |
Wird zum Abrufen der grundlegenden Informationen eines erfassbaren Fensters verwendet | |
Videoquelle, die auf einem benutzerdefinierten GStreamer-Element basiert | |
Ermöglicht die Erfassung von Audio- und Videoinhalten | |
Ermöglicht die Wiedergabe von Mediendateien | |
Wird zum Kodieren und Aufzeichnen einer Aufnahmesitzung verwendet | |
Ermöglicht die Low-Level-Steuerung von Medienwiedergabeoptionen | |
Diese Klasse wird zur Bildschirmaufnahme verwendet | |
Stellt einen Videodaten-Frame dar | |
Legt das Stream-Format einer Videodarstellungsfläche fest | |
Wird verwendet, um dem `QMediaRecorder` oder einer Videoausgabe über `QMediaCaptureSession` benutzerdefinierte Videobilder bereitzustellen | |
Stellt einen generischen Senker für Videodaten dar | |
Widget, das von einem Medienobjekt erzeugte Videos anzeigt | |
Diese Klasse wird zum Erfassen eines Fensters verwendet |
QML-Typen
Dieser Typ wird verwendet, um die Grunddaten eines Fensters abzurufen, das über WindowCapture erfasst werden kann | |
Ermöglicht die Erfassung von Audio- und Videoinhalten | |
Eine Videoquelle, die auf einer benutzerdefinierten GStreamer-Bin-Datei basiert | |
Fügt einer Szene die Medienwiedergabe hinzu | |
Zur Kodierung und Aufzeichnung von Medien, die in einer „CaptureSession“ erzeugt wurden | |
Optionen für die Medienwiedergabe auf niedriger Ebene | |
Dieser Typ wird zur Bildschirmaufnahme verwendet | |
Ein Komforttyp zum Anzeigen eines bestimmten Videos | |
Video oder Kamerasucher rendern | |
Dieser Typ wird zur Erfassung eines Fensters verwendet | |
Beschreibt ein Kameragerät | |
Beschreibt ein von einem Kameragerät unterstütztes Videoformat | |
Stellt Metadaten für Mediendateien bereit |
© 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.