En esta página

Visión general de vídeo

Funciones de vídeo

Qt Multimedia ofrece clases C++ de alto y bajo nivel para reproducir y manipular datos de vídeo, y tipos QML para reproducción y grabación. Algunas de las clases presentadas aquí se solapan con lo presentado en la Visión General de la Cámara y la Visión General del Audio.

Detalles de la implementación de vídeo

Reproducción de vídeo en C

Puede utilizar la clase QMediaPlayer para decodificar un archivo de vídeo, y mostrarlo utilizando QVideoWidget, QGraphicsVideoItem, o una clase personalizada.

He aquí un ejemplo de uso de QVideoWidget:

player = new QMediaPlayer;
player->setSource(QUrl("http://example.com/myclip1.mp4"));

videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);

videoWidget->show();
player->play();

Y un ejemplo con 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();

Reproducción de vídeo en QML

Puede utilizar VideoOutput para renderizar contenido proporcionado por un MediaPlayer o un Camera. El VideoOutput es un componente visual que puede incrustarse en un QQuickScene o Window, mientras que toda la decodificación de medios y el control de la reproducción son gestionados por el MediaPlayer o CaptureSession. Se ha proporcionado un elemento Video para mayor comodidad. Combina los elementos MediaPlayer, VideoOutput y AudioOutput en un solo elemento.

Trabajar con fotogramas de vídeo de bajo nivel

Qt Multimedia ofrece una serie de clases de bajo nivel para facilitar el manejo de los fotogramas de vídeo. Estas clases se utilizan principalmente cuando se escribe código que procesa fotogramas de vídeo o de cámara (por ejemplo, detectar códigos de barras, o aplicar un efecto de viñeta de fantasía), o necesita mostrar vídeo de una manera especial que de otro modo no es compatible.

La clase QVideoFrame encapsula un fotograma de vídeo y permite mapear su contenido en la memoria del sistema para su manipulación o procesamiento. El uso de su propio QVideoSink le permite recibir estos fotogramas de QMediaPlayer y QCamera.

Grabación de vídeo

La clase central para cualquier tipo de captura o grabación de audio y vídeo es QMediaCaptureSession (o el tipo QML CaptureSession ). Puede conectar un QCamera (Cámara en QML) y un QMediaRecorder (MediaRecorder)a la sesión y, a continuación, pedir al grabador multimedia que inicie la grabación.

Formatos multimedia compatibles

Los formatos multimedia compatibles dependen en última instancia de la configuración del sistema de destino.

Windows

Por defecto, lo que está disponible en un destino MS Windows depende de la versión del Reproductor de Windows Media que se empaquetó con el sistema operativo. Consulte la documentación del Reproductor de Windows Media para obtener información oficial.

Independientemente del Reproductor de Windows Media, existen numerosos paquetes de códecs que pueden instalarse. Consulta la guía de códecs para ver algunos ejemplos.

Android

Consulte los formatos multimedia compatibles con Android para obtener esta información.

Linux

En Linux se trata de instalar los plugins GStreamer correctos.

Plugins GStreamer mínimos requeridos

  • gstreamer1.0-plugins-base
  • gstreamer1.0-plugins-bueno
  • gstreamer1.0-plugins-pulseaudio

Para un objetivo de escritorio Linux, se recomienda encarecidamente tener gstreamer1.0-libav para una buena cobertura de códecs y gstreamer1.0-vaapi para obtener aceleración por hardware.

En Linux embebido, el conjunto requerido de plugins podría ser algo diferente.

Determinación de los formatos multimedia soportados en tiempo de ejecución

Puede determinar qué formatos están disponibles en un sistema de destino en tiempo de ejecución utilizando la API estática QMediaFormat.

Ejemplos

Existen ejemplos disponibles tanto en C++ como en QML.

Ejemplos C

Camera Example

Muestra cómo capturar una imagen fija o grabar vídeo.

Media Player Example

Reproducción de audio y vídeo mediante Qt Widgets.

Ejemplos QML

Media Player

Reproducción de audio y vídeo mediante Qt Quick

QML Media Player Example

Reproducción de audio y vídeo utilizando el tipo MediaPlayer de QML.

QML Video Recorder

Grabación de audio y vídeo utilizando Qt Quick.

Documentación de referencia

Clases C

QAbstractVideoBuffer

Abstracción para datos de vídeo

QAbstractVideoBuffer::MapData

La estructura QAbstractVideoBuffer::MapData describe la disposición del plano mapeado

QCapturableWindow

Se utiliza para obtener la información básica de una ventana capturable

QMediaCaptureSession

Permite la captura de contenidos de audio y vídeo

QMediaPlayer

Permite la reproducción de archivos multimedia

QMediaRecorder

Se utiliza para codificar y grabar una sesión de captura

QPlaybackOptions

Permite el control de bajo nivel de las opciones de reproducción multimedia

QScreenCapture

Esta clase se utiliza para capturar una pantalla

QVideoFrame

Representa un fotograma de datos de vídeo

QVideoFrameFormat

Especifica el formato de flujo de una superficie de presentación de vídeo

QVideoFrameInput

Se utiliza para proporcionar fotogramas de vídeo personalizados a QMediaRecorder o una salida de vídeo a través de QMediaCaptureSession

QVideoSink

Representa un sumidero genérico de datos de vídeo

QVideoWidget

Widget que presenta el vídeo producido por un objeto multimedia

QWindowCapture

Esta clase se utiliza para capturar una ventana

Tipos QML

CapturableWindow

Type se utiliza para obtener información básica de una ventana que está disponible para la captura a través de WindowCapture

CaptureSession

Permite capturar contenido de audio y vídeo

MediaPlayer

Añade reproducción multimedia a una escena

MediaRecorder

Para codificar y grabar medios generados en una CaptureSession

PlaybackOptions

Opciones de reproducción multimedia de bajo nivel

ScreenCapture

Este tipo se utiliza para capturar una pantalla

Video

Un tipo práctico para mostrar un vídeo especificado

VideoOutput

Renderizar vídeo o visor de cámara

WindowCapture

Este tipo se utiliza para capturar una ventana

cameraDevice

Describe un dispositivo de cámara

cameraFormat

Describe un formato de vídeo compatible con un dispositivo de cámara

mediaMetaData

Proporciona metadatos para archivos multimedia

© 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.