Auf dieser Seite

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.

Beispiele

Es stehen sowohl C++- als auch QML-Beispiele zur Verfügung.

C++-Beispiele

Camera Example

Zeigt, wie man ein Standbild aufnimmt oder ein Video aufzeichnet.

Media Player Example

Wiedergabe von Audio und Video mit „ Qt Widgets “.

QML-Beispiele

Media Player

Wiedergabe von Audio und Video mit Qt Quick

QML Media Player Example

Wiedergabe von Audio und Video mit dem QML-Typ „MediaPlayer“.

QML Video Recorder

Aufnahme von Audio und Video mit „ Qt Quick “.

Referenzdokumentation

C++-Klassen

QAbstractVideoBuffer

Abstraktion für Videodaten

QAbstractVideoBuffer::MapData

Die Struktur `QAbstractVideoBuffer::MapData` beschreibt das Layout der abgebildeten Ebenen

QCapturableWindow

Wird zum Abrufen der grundlegenden Informationen eines erfassbaren Fensters verwendet

QGStreamerVideoSource

Videoquelle, die auf einem benutzerdefinierten GStreamer-Element basiert

QMediaCaptureSession

Ermöglicht die Erfassung von Audio- und Videoinhalten

QMediaPlayer

Ermöglicht die Wiedergabe von Mediendateien

QMediaRecorder

Wird zum Kodieren und Aufzeichnen einer Aufnahmesitzung verwendet

QPlaybackOptions

Ermöglicht die Low-Level-Steuerung von Medienwiedergabeoptionen

QScreenCapture

Diese Klasse wird zur Bildschirmaufnahme verwendet

QVideoFrame

Stellt einen Videodaten-Frame dar

QVideoFrameFormat

Legt das Stream-Format einer Videodarstellungsfläche fest

QVideoFrameInput

Wird verwendet, um dem `QMediaRecorder` oder einer Videoausgabe über `QMediaCaptureSession` benutzerdefinierte Videobilder bereitzustellen

QVideoSink

Stellt einen generischen Senker für Videodaten dar

QVideoWidget

Widget, das von einem Medienobjekt erzeugte Videos anzeigt

QWindowCapture

Diese Klasse wird zum Erfassen eines Fensters verwendet

QML-Typen

CapturableWindow

Dieser Typ wird verwendet, um die Grunddaten eines Fensters abzurufen, das über WindowCapture erfasst werden kann

CaptureSession

Ermöglicht die Erfassung von Audio- und Videoinhalten

GStreamerVideoSource

Eine Videoquelle, die auf einer benutzerdefinierten GStreamer-Bin-Datei basiert

MediaPlayer

Fügt einer Szene die Medienwiedergabe hinzu

MediaRecorder

Zur Kodierung und Aufzeichnung von Medien, die in einer „CaptureSession“ erzeugt wurden

PlaybackOptions

Optionen für die Medienwiedergabe auf niedriger Ebene

ScreenCapture

Dieser Typ wird zur Bildschirmaufnahme verwendet

Video

Ein Komforttyp zum Anzeigen eines bestimmten Videos

VideoOutput

Video oder Kamerasucher rendern

WindowCapture

Dieser Typ wird zur Erfassung eines Fensters verwendet

cameraDevice

Beschreibt ein Kameragerät

cameraFormat

Beschreibt ein von einem Kameragerät unterstütztes Videoformat

mediaMetaData

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.