Sur cette page

QVideoFrameFormat Class

La classe QVideoFrameFormat définit le format de flux d'une surface de présentation vidéo. En savoir plus...

En-tête : #include <QVideoFrameFormat>
CMake : find_package(Qt6 REQUIRED COMPONENTS Multimedia)
target_link_libraries(mytarget PRIVATE Qt6::Multimedia)
qmake : QT += multimedia

Types publics

enum ColorRange { ColorRange_Unknown, ColorRange_Video, ColorRange_Full }
enum ColorSpace { ColorSpace_Undefined, ColorSpace_BT601, ColorSpace_BT709, ColorSpace_AdobeRgb, ColorSpace_BT2020 }
enum ColorTransfer { ColorTransfer_Unknown, ColorTransfer_BT709, ColorTransfer_BT601, ColorTransfer_Linear, ColorTransfer_Gamma22, …, ColorTransfer_STD_B67 }
enum Direction { TopToBottom, BottomToTop }
enum PixelFormat { Format_Invalid, Format_ARGB8888, Format_ARGB8888_Premultiplied, Format_XRGB8888, Format_BGRA8888, …, Format_YUV420P10 }

Fonctions publiques

QVideoFrameFormat()
QVideoFrameFormat(const QSize &size, QVideoFrameFormat::PixelFormat format)
QVideoFrameFormat(const QVideoFrameFormat &other)
QVideoFrameFormat(QVideoFrameFormat &&other)
~QVideoFrameFormat()
QVideoFrameFormat::ColorRange colorRange() const
QVideoFrameFormat::ColorSpace colorSpace() const
QVideoFrameFormat::ColorTransfer colorTransfer() const
int frameHeight() const
qreal frameRate() const
QSize frameSize() const
int frameWidth() const
bool isMirrored() const
bool isValid() const
QVideoFrameFormat::PixelFormat pixelFormat() const
int planeCount() const
QtVideo::Rotation rotation() const
QVideoFrameFormat::Direction scanLineDirection() const
void setColorRange(QVideoFrameFormat::ColorRange range)
void setColorSpace(QVideoFrameFormat::ColorSpace colorSpace)
void setColorTransfer(QVideoFrameFormat::ColorTransfer colorTransfer)
void setFrameRate(qreal rate)
void setFrameSize(const QSize &size)
void setFrameSize(int width, int height)
void setMaxLuminance(float lum)
void setMirrored(bool mirrored)
void setRotation(QtVideo::Rotation angle)
void setScanLineDirection(QVideoFrameFormat::Direction direction)
void setStreamFrameRate(qreal rate)
void setViewport(const QRect &viewport)
qreal streamFrameRate() const
void swap(QVideoFrameFormat &other)
QRect viewport() const
bool operator!=(const QVideoFrameFormat &other) const
QVideoFrameFormat &operator=(QVideoFrameFormat &&other)
QVideoFrameFormat &operator=(const QVideoFrameFormat &other)
bool operator==(const QVideoFrameFormat &other) const

Membres publics statiques

QImage::Format imageFormatFromPixelFormat(QVideoFrameFormat::PixelFormat format)
QVideoFrameFormat::PixelFormat pixelFormatFromImageFormat(QImage::Format format)
QString pixelFormatToString(QVideoFrameFormat::PixelFormat pixelFormat)

Description détaillée

Un récepteur vidéo présente un flux d’images vidéo. QVideoFrameFormat décrit le type des images et détermine la manière dont elles doivent être présentées.

Les propriétés essentielles d’un flux vidéo nécessaires à la configuration d’un récepteur vidéo sont le format de pixel, défini par la fonction ` pixelFormat()`, et les dimensions de l’image, définies par la fonction ` frameSize()`.

La région d’une image qui est effectivement affichée sur une surface vidéo est définie par la fonction viewport(). Un flux peut avoir une fenêtre d’affichage plus petite que la région complète d’une image afin de prendre en charge des vidéos dont la taille est inférieure à la taille optimale la plus proche d’une image vidéo. Par exemple, la largeur d’une image peut être étendue de manière à ce que le début de chaque ligne de balayage soit aligné sur huit octets.

D'autres propriétés courantes sont l'scanLineDirection(), l'frameRate() et la yCrCbColorSpace().

Documentation sur les types de membres

enum QVideoFrameFormat::ColorRange

Décrit la gamme de couleurs utilisée par les données vidéo. Les données vidéo sont généralement disponibles soit dans une gamme de couleurs complète, où toutes les valeurs sont utilisées, soit dans une gamme plus restreinte, traditionnellement utilisée dans les formats vidéo YUV, où seul un sous-ensemble de toutes les valeurs est utilisé.

ConstanteValeurDescription
QVideoFrameFormat::ColorRange_Unknown0La gamme de couleurs de la vidéo est inconnue.
QVideoFrameFormat::ColorRange_Video1 

Plage de couleurs traditionnellement utilisée par la plupart des formats vidéo YUV. Pour les formats 8 bits, la composante Y est limitée à des valeurs comprises entre 16 et 235. Les composantes U et V sont limitées à des valeurs comprises entre 16 et 240

Pour des profondeurs de bits supérieures, multipliez ces valeurs par 2^(profondeur-8).

ConstanteValeur
QVideoFrameFormat::ColorRange_Full2

Gamme de couleurs complète. Toutes les valeurs comprises entre 0 et 2^profondeur - 1 sont valides.

enum QVideoFrameFormat::ColorSpace

Énumère l'espace colorimétrique des images vidéo.

ConstanteValeurDescription
QVideoFrameFormat::ColorSpace_Undefined0Aucun espace colorimétrique n'est spécifié.
QVideoFrameFormat::ColorSpace_BT6011Un espace colorimétrique défini par la recommandation BT.601 de l'UIT-R, avec une plage de valeurs Y comprise entre 16 et 235, et une plage Cb/Cr comprise entre 16 et 240. Principalement utilisé par les anciennes vidéos destinées aux écrans CRT.
QVideoFrameFormat::ColorSpace_BT7092Un espace colorimétrique défini par la recommandation UIT-R BT.709, avec la même plage de valeurs que ColorSpace_BT601. C'est l'espace colorimétrique le plus couramment utilisé aujourd'hui.
QVideoFrameFormat::ColorSpace_AdobeRgb5L'espace colorimétrique YUV à plage complète utilisé dans la plupart des fichiers JPEG.
QVideoFrameFormat::ColorSpace_BT20206L'espace colorimétrique défini par la norme ITU-R BT.2020. Principalement utilisé pour les vidéos HDR.

enum QVideoFrameFormat::ColorTransfer

ConstanteValeurDescription
QVideoFrameFormat::ColorTransfer_Unknown0La fonction de transfert des couleurs est inconnue.
QVideoFrameFormat::ColorTransfer_BT7091Les valeurs de couleur sont codées selon la norme BT709. Voir également https://www.itu.int/rec/R-REC-BT.709/en. Cette courbe est proche, mais non identique, à une courbe gamma de 2,2, et correspond à la courbe de transfert utilisée dans le sRGB.
QVideoFrameFormat::ColorTransfer_BT6012Les valeurs de couleur sont encodées selon la norme BT601. Voir également https://www.itu.int/rec/R-REC-BT.601/en.
QVideoFrameFormat::ColorTransfer_Linear3Les valeurs de couleur sont linéaires
QVideoFrameFormat::ColorTransfer_Gamma224Les valeurs de couleur sont encodées avec un gamma de 2,2
QVideoFrameFormat::ColorTransfer_Gamma285Les valeurs de couleur sont codées avec un gamma de 2,8
QVideoFrameFormat::ColorTransfer_ST20846Les valeurs de couleur sont encodées selon la norme STME ST 2084. Cette fonction de transfert est la fonction de transfert HDR la plus courante et est souvent appelée « quantificateur perceptuel ». Voir également https://www.itu.int/rec/R-REC-BT.2100 et https://en.wikipedia.org/wiki/Perceptual_quantizer.
QVideoFrameFormat::ColorTransfer_STD_B677Les valeurs de couleur sont encodées selon la norme ARIB STD B67. Cette fonction de transfert est également souvent appelée « hybrid log gamma ». Voir également https://www.itu.int/rec/R-REC-BT.2100 et https://en.wikipedia.org/wiki/Hybrid_log–gamma.

enum QVideoFrameFormat::Direction

Indique le sens de disposition des lignes de balayage vidéo.

ConstanteValeurDescription
QVideoFrameFormat::TopToBottom0Les lignes de balayage sont disposées du haut vers le bas de l'image.
QVideoFrameFormat::BottomToTop1Les lignes de balayage sont disposées du bas de l'image vers le haut.

enum QVideoFrameFormat::PixelFormat

Énumère les types de données vidéo.

ConstanteValeurDescription
QVideoFrameFormat::Format_Invalid0L'image n'est pas valide.
QVideoFrameFormat::Format_ARGB88881L'image est stockée au format ARGB avec 8 bits par composante.
QVideoFrameFormat::Format_ARGB8888_Premultiplied2L'image est stockée au format ARGB prémultiplié avec 8 bits par composante.
QVideoFrameFormat::Format_XRGB88883L'image est stockée au format RVB de 32 bits par pixel (0xff, R, G, B).
QVideoFrameFormat::Format_BGRA88884L'image est stockée au format BGRA 32 bits (0xBBGGRRAA).
QVideoFrameFormat::Format_BGRA8888_Premultiplied5L'image est stockée au format BGRA pré-multiplié de 32 bits.
QVideoFrameFormat::Format_ABGR88887L'image est stockée au format ABGR 32 bits (0xAABBGGRR).
QVideoFrameFormat::Format_XBGR88888L'image est stockée au format BGR 32 bits (0xffBBGGRR).
QVideoFrameFormat::Format_RGBA88889L'image est stockée en mémoire sous la forme des octets R, G, B, A/X, R occupant l'adresse la plus basse et A/X l'adresse la plus haute.
QVideoFrameFormat::Format_BGRX88886L'image est stockée au format BGRx 32 bits, [31:0] B:G:R:x 8:8:8:8 (little endian)
QVideoFrameFormat::Format_RGBX888810L'image est stockée en mémoire sous forme d'octets R, G, B, A/X, R occupant l'adresse la plus basse et A/X l'adresse la plus haute.
QVideoFrameFormat::Format_AYUV11L'image est stockée au format AYUV 32 bits condensé (0xAAYYUUVV).
QVideoFrameFormat::Format_AYUV_Premultiplied12L'image est stockée au format AYUV 32 bits pré-multiplié et condensé (0xAAYYUUVV).
QVideoFrameFormat::Format_YUV420P13La trame est stockée au format YUV planaire de 8 bits par composante, les plans U et V étant sous-échantillonnés horizontalement et verticalement, c'est-à-dire que la hauteur et la largeur des plans U et V sont égales à la moitié de celles du plan Y.
QVideoFrameFormat::Format_YUV422P14L'image est stockée au format YUV planaire de 8 bits par composante, les plans U et V étant sous-échantillonnés horizontalement ; c'est-à-dire que la largeur des plans U et V est égale à la moitié de celle du plan Y, et que la hauteur des plans U et V est identique à celle du plan Y.
QVideoFrameFormat::Format_YV1215L'image est stockée au format YVU planaire à 8 bits par composante, avec sous-échantillonnage horizontal et vertical des plans V et U, c'est-à-dire que la hauteur et la largeur des plans V et U sont égales à la moitié de celles du plan Y.
QVideoFrameFormat::Format_UYVY16L'image est stockée au format YUV « packed » (compressé) de 8 bits par composante, avec les plans U et V sous-échantillonnés horizontalement (U-Y-V-Y) ; c'est-à-dire que deux pixels horizontalement adjacents sont stockés sous la forme d'un macropixel de 32 bits comportant une valeur Y pour chaque pixel et des valeurs U et V communes.
QVideoFrameFormat::Format_YUYV17L'image est stockée au format YUV compacté à 8 bits par composante, avec les plans U et V sous-échantillonnés horizontalement (Y-U-Y-V), c'est-à-dire que deux pixels horizontalement adjacents sont stockés sous la forme d'un macropixel de 32 bits comportant une valeur Y pour chaque pixel et des valeurs U et V communes.
QVideoFrameFormat::Format_NV1218L'image est stockée au format YUV semi-plan de 8 bits par composante, avec un plan Y (Y) suivi d'un plan UV (U-V) compacté, sous-échantillonné horizontalement et verticalement.
QVideoFrameFormat::Format_NV2119L'image est stockée au format YUV semi-plan, à 8 bits par composante, avec un plan Y (Y) suivi d'un plan VU (V-U) compacté, sous-échantillonné horizontalement et verticalement.
QVideoFrameFormat::Format_IMC120L'image est stockée au format YUV planaire à 8 bits par composante, les plans U et V étant sous-échantillonnés horizontalement et verticalement. Ce format est similaire au type Format_YUV420P, à l'exception du fait que le nombre d'octets par ligne des plans U et V est complété pour atteindre le même pas que le plan Y.
QVideoFrameFormat::Format_IMC221L'image est stockée au format YUV planaire à 8 bits par composante, les plans U et V étant sous-échantillonnés horizontalement et verticalement. Ce format est similaire au type Format_YUV420P, à la différence que les lignes des plans U et V sont entrelacées, c’est-à-dire que chaque ligne de données U est suivie d’une ligne de données V, créant ainsi une seule ligne ayant le même pas que les données Y.
QVideoFrameFormat::Format_IMC322L'image est stockée au format YVU planaire à 8 bits par composante, les plans V et U étant sous-échantillonnés horizontalement et verticalement. Ce format est similaire au type Format_YV12, à la différence que le nombre d’octets par ligne des plans V et U est complété pour obtenir le même pas que le plan Y.
QVideoFrameFormat::Format_IMC423L'image est stockée au format YVU planaire à 8 bits par composante, les plans V et U étant sous-échantillonnés horizontalement et verticalement. Ce format est similaire au type Format_YV12, à la différence près que les lignes des plans V et U sont entrelacées, c'est-à-dire que chaque ligne de données V est suivie d'une ligne de données U, créant ainsi une seule ligne de même pas que les données Y.
QVideoFrameFormat::Format_P01026L'image est stockée au format YUV semi-plan de 16 bits par composante, avec un plan Y (Y) suivi d'un plan UV (U-V) compacté et sous-échantillonné horizontalement et verticalement. Seuls les 10 bits les plus significatifs de chaque composante sont utilisés.
QVideoFrameFormat::Format_P01627L'image est stockée au format YUV semi-plan, avec 16 bits par composante, comprenant un plan Y (Y) suivi d'un plan UV (U-V) compressé et sous-échantillonné horizontalement et verticalement.
QVideoFrameFormat::Format_Y824L'image est stockée au format niveaux de gris 8 bits.
QVideoFrameFormat::Format_Y1625L'image est stockée au format YUV semi-plan de 16 bits par composante, avec un plan Y (Y) suivi d'un plan UV (U-V) sous-échantillonné horizontalement et verticalement et compacté.
QVideoFrameFormat::Format_Jpeg29L'image est stockée au format JPEG compressé.
QVideoFrameFormat::Format_SamplerExternalOES28L'image est stockée au format de texture OES externe. Ce format n'est actuellement utilisé que sur Android.
QVideoFrameFormat::Format_SamplerRect30L'image est stockée au format de texture rectangulaire (GL_TEXTURE_RECTANGLE). Ce format n'est utilisé que sur macOS avec une interface matérielle de rendu basée sur OpenGL. Le format de pixel sous-jacent stocké dans la texture est Format_BRGA8888.
QVideoFrameFormat::Format_YUV420P1031Similaire au format YUV420, mais utilise 16 bits par composante, dont 10 bits significatifs.

Documentation des fonctions membres

QVideoFrameFormat::QVideoFrameFormat()

Crée un format de flux vidéo nul.

QVideoFrameFormat::QVideoFrameFormat(const QSize &size, QVideoFrameFormat::PixelFormat format)

Crée un flux vidéo avec les paramètres d'size s d'image et d'format s de pixels indiqués.

QVideoFrameFormat::QVideoFrameFormat(const QVideoFrameFormat &other)

Crée une copie de other.

[constexpr noexcept default] QVideoFrameFormat::QVideoFrameFormat(QVideoFrameFormat &&other)

Crée un objet `QVideoFrameFormat` à partir de ` other`.

[noexcept] QVideoFrameFormat::~QVideoFrameFormat()

Supprime la description d'un flux vidéo.

QVideoFrameFormat::ColorRange QVideoFrameFormat::colorRange() const

Renvoie la gamme de couleurs à utiliser pour le rendu du flux vidéo.

Voir également setColorRange().

QVideoFrameFormat::ColorSpace QVideoFrameFormat::colorSpace() const

Renvoie l'espace colorimétrique d'un flux vidéo.

Voir aussi setColorSpace().

QVideoFrameFormat::ColorTransfer QVideoFrameFormat::colorTransfer() const

Renvoie la fonction de transfert de couleur à utiliser pour le rendu du flux vidéo.

Voir également setColorTransfer().

int QVideoFrameFormat::frameHeight() const

Renvoie la hauteur de l'image dans un flux vidéo.

qreal QVideoFrameFormat::frameRate() const

Renvoie la fréquence d'images d'un flux vidéo, exprimée en images par seconde.

Voir aussi setFrameRate().

QSize QVideoFrameFormat::frameSize() const

Renvoie les dimensions des images d'un flux vidéo.

Voir également setFrameSize(), frameWidth() et frameHeight().

int QVideoFrameFormat::frameWidth() const

Renvoie la largeur des images d'un flux vidéo.

Voir également frameSize() et frameHeight().

[static] QImage::Format QVideoFrameFormat::imageFormatFromPixelFormat(QVideoFrameFormat::PixelFormat format)

Renvoie un format d'image équivalent à l'format en pixels d'une image vidéo. S'il n'existe aucun format équivalent, la valeur « QImage::Format_Invalid » est renvoyée à la place.

Remarque : en général, QImage ne prend pas en charge les formats YUV.

bool QVideoFrameFormat::isMirrored() const

Renvoie ` true ` si la surface est symétrique par rapport à son axe vertical.

Les transformations de ` QVideoFrameFormat`, notamment la rotation et la réflexion, peuvent être déterminées par l'orientation du capteur de la caméra, les paramètres de la caméra ou l'orientation du flux vidéo.

La réflexion est appliquée après la rotation.

Remarque : la réflexion décrite ici diffère de celle de ` QImage::mirrored`, car une image ` QImage ` réfléchie verticalement sera réfléchie par rapport à son axe x.

bool QVideoFrameFormat::isValid() const

Détermine si le format d'une surface vidéo présente un format de pixels et une taille d'image valides.

Renvoie « true » si le format est valide, et « false » dans le cas contraire.

QVideoFrameFormat::PixelFormat QVideoFrameFormat::pixelFormat() const

Renvoie le format de pixel des images d'un flux vidéo.

[static] QVideoFrameFormat::PixelFormat QVideoFrameFormat::pixelFormatFromImageFormat(QImage::Format format)

Renvoie un format de pixel vidéo équivalent à une image format. S'il n'existe aucun format équivalent, la valeur QVideoFrameFormat::Format_Invalid est renvoyée à la place.

Remarque : en général, ` QImage ` ne prend pas en charge les formats YUV.

[static] QString QVideoFrameFormat::pixelFormatToString(QVideoFrameFormat::PixelFormat pixelFormat)

Renvoie une représentation sous forme de chaîne de caractères de l'pixelFormat donné.

int QVideoFrameFormat::planeCount() const

Renvoie le nombre de plans utilisés. Ce nombre dépend du format de pixels : il est égal à 1 pour les formats RVB et à un nombre compris entre 1 et 3 pour les formats YUV.

QtVideo::Rotation QVideoFrameFormat::rotation() const

Renvoie l'angle de rotation de la surface dans le sens des aiguilles d'une montre.

Les transformations d'QVideoFrameFormat, notamment la rotation et la réflexion, peuvent être déterminées par l'orientation du capteur de la caméra, les paramètres de la caméra ou l'orientation du flux vidéo.

La rotation est appliquée avant la réflexion.

Voir également setRotation().

QVideoFrameFormat::Direction QVideoFrameFormat::scanLineDirection() const

Renvoie le sens des lignes de balayage.

Voir également setScanLineDirection().

void QVideoFrameFormat::setColorRange(QVideoFrameFormat::ColorRange range)

Définit la plage de transfert des couleurs à utiliser pour le rendu du flux vidéo vers range.

Voir également colorRange().

void QVideoFrameFormat::setColorSpace(QVideoFrameFormat::ColorSpace colorSpace)

Définit la colorSpace d'un flux vidéo.

Voir aussi colorSpace().

void QVideoFrameFormat::setColorTransfer(QVideoFrameFormat::ColorTransfer colorTransfer)

Définit la fonction de transfert de couleur à utiliser pour le rendu du flux vidéo vers colorTransfer.

Voir également colorTransfer().

void QVideoFrameFormat::setFrameRate(qreal rate)

Définit la fréquence d'rate d'un flux vidéo en images par seconde.

Voir aussi frameRate().

void QVideoFrameFormat::setFrameSize(const QSize &size)

Définit la taille des images d'un flux vidéo sur size.

Cela réinitialisera la fonction viewport() afin qu'elle occupe toute l'image.

Voir également frameSize().

void QVideoFrameFormat::setFrameSize(int width, int height)

Définit les paramètres « width » et « height » des images d'un flux vidéo.

Cela réinitialise la fonction viewport() afin de remplir l'intégralité de l'image.

Il s'agit d'une fonction surchargée.

void QVideoFrameFormat::setMaxLuminance(float lum)

Définit la luminance maximale à la valeur indiquée : lum.

void QVideoFrameFormat::setMirrored(bool mirrored)

Indique si la surface subit une transformation de type « mirrored » autour de son axe vertical.

Les transformations de l'QVideoFrameFormat, notamment la rotation et la réflexion, peuvent être déterminées par l'orientation du capteur de la caméra, les réglages de la caméra ou l'orientation du flux vidéo.

La symétrie est appliquée après la rotation.

La valeur par défaut est « false ».

Remarque : la réflexion ici diffère de ` QImage::mirrored`, car une image ` QImage ` réfléchie verticalement sera réfléchie autour de son axe x.

Voir également isMirrored().

void QVideoFrameFormat::setRotation(QtVideo::Rotation angle)

Définit l'angle e selon laquelle la surface est pivotée dans le sens des aiguilles d'une montre.

Les transformations d'QVideoFrameFormat, notamment la rotation et la symétrie, peuvent être déterminées par l'orientation du capteur de la caméra, les paramètres de la caméra ou l'orientation du flux vidéo.

La rotation est appliquée avant la réflexion.

La valeur par défaut est QtVideo::Rotation::None.

Voir également rotation().

void QVideoFrameFormat::setScanLineDirection(QVideoFrameFormat::Direction direction)

Définit l'direction e des lignes de balayage.

Voir aussi scanLineDirection().

void QVideoFrameFormat::setStreamFrameRate(qreal rate)

Définit la fréquence d'rate d'un flux vidéo en images par seconde.

Voir aussi streamFrameRate().

void QVideoFrameFormat::setViewport(const QRect &viewport)

Définit la fenêtre d'affichage d'un flux vidéo sur viewport.

Voir également viewport().

qreal QVideoFrameFormat::streamFrameRate() const

Renvoie la fréquence d'images d'un flux vidéo, exprimée en images par seconde.

Voir aussi setStreamFrameRate().

[noexcept] void QVideoFrameFormat::swap(QVideoFrameFormat &other)

Permet de remplacer le format d'image vidéo actuel par celui de l'other.

QRect QVideoFrameFormat::viewport() const

Renvoie la fenêtre d'affichage d'un flux vidéo.

La fenêtre d'affichage correspond à la partie d'une image vidéo qui est effectivement affichée.

Par défaut, la fenêtre d'affichage couvre l'intégralité de l'image.

Voir également setViewport().

bool QVideoFrameFormat::operator!=(const QVideoFrameFormat &other) const

Renvoie « true » si other est différent de ce format vidéo, et « false » s'ils sont identiques.

[noexcept] QVideoFrameFormat &QVideoFrameFormat::operator=(QVideoFrameFormat &&other)

Déplace « other » vers cette adresse : QVideoFrameFormat.

QVideoFrameFormat &QVideoFrameFormat::operator=(const QVideoFrameFormat &other)

Attribue à cet objet les valeurs de other.

bool QVideoFrameFormat::operator==(const QVideoFrameFormat &other) const

Renvoie « true » si other correspond au format de cette vidéo, et « false » s'ils sont différents.

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