- class QVideoFrameFormat#
QVideoFrameFormat
类指定视频展示流的格式。 更多...新版本 6.1中引入。
摘要#
方法#
def
__init__()
def
colorRange()
定义
colorSpace()
定义
frameRate()
定义
frameSize()
定义
frameWidth()
定义
isMirrored()
定义
isValid()
定义
__ne__()
定义
__eq__()
定义
planeCount()
定义
swap()
静态函数#
注意
此文档可能包含从 C++ 自动翻译到 Python 的代码段。我们始终欢迎对代码段翻译的贡献。如果您发现翻译存在任何问题,您也可以通过在 https:/bugreports.qt.io/projects/PYSIDE 上创建工单来告知我们。
详细描述#
视频输出显示一系列视频帧。《
QVideoFrameFormat
` 描述帧的类型,并确定它们应该如何显示。要设置视频输出所需的核心视频流属性包括由
pixelFormat()
提供的像素格式,以及由frameSize()
提供的帧尺寸。视频纹理上实际显示的帧区域由
viewport()
确定一个视频流的视口可能小于整个帧区域,以适应小于视频帧最近优化大小的视频。例如,帧的宽度可能被扩展,以便每条扫描线的开始处是8字节对齐。其他常见属性包括
scanLineDirection()
、frameRate()
和 yCrCbColorSpace()。- class PixelFormat#
枚举视频数据类型。
常量
描述
QVideoFrameFormat.Format_Invalid
帧无效。
QVideoFrameFormat.Format_ARGB8888
帧使用每个组件8位的ARGB格式进行存储。
QVideoFrameFormat.Format_ARGB8888_Premultiplied
帧使用每个组件8位的预乘ARGB格式进行存储。
QVideoFrameFormat.Format_XRGB8888
帧使用每个像素32位RGB格式(0xff, R, G, B)进行存储。
QVideoFrameFormat.Format_BGRA8888
帧使用32位BGRA格式(0xBBGGRRAA)进行存储。
QVideoFrameFormat.Format_BGRA8888_Premultiplied
帧使用预乘32位BGRA格式进行存储。
QVideoFrameFormat.Format_ABGR8888
帧使用32位ABGR格式(0xAABBGGRR)进行存储。
QVideoFrameFormat.Format_XBGR8888
帧使用32位BGR格式(0xffBBGGRR)进行存储。
QVideoFrameFormat.Format_RGBA8888
帧以字节的顺序R、G、B、A/X在内存中存储,其中R在最低地址,A/X在最高地址。
QVideoFrameFormat.Format_BGRX8888
帧以32位BGRx格式存储,[31:0] B:G:R:x 8:8:8:8 小端模式
QVideoFrameFormat.Format_RGBX8888
帧以字节的顺序R、G、B、A/X在内存中存储,其中R在最低地址,A/X在最高地址。
QVideoFrameFormat.Format_AYUV
帧使用打包的32位AYUV格式(0xAAYYUUVV)进行存储。
QVideoFrameFormat.Format_AYUV_Premultiplied
帧使用打包的预乘32位AYUV格式(0xAAYYUUVV)进行存储。
QVideoFrameFormat.Format_YUV420P
帧使用每分量8位的平面YUV格式进行存储,U和V面水平垂直子采样,即U和V面的高度和宽度是Y面的一半。
QVideoFrameFormat.Format_YUV422P
帧使用每分量8位的平面YUV格式进行存储,U和V面水平子采样,即U和V面的宽度是Y面的一半,U和V面的高度与Y面相同。
QVideoFrameFormat.Format_YV12
帧使用每分量8位的平面YVU格式进行存储,V和U面水平垂直子采样,即V和U面的高度和宽度是Y面的一半。
QVideoFrameFormat.Format_UYVY
帧使用每分量8位的打包YUV格式进行存储,U和V面水平子采样(U-Y-V-Y),即两个水平相邻的像素被存储为一个32位宏像素,该像素具有每个像素的Y值和共同的U和V值。
QVideoFrameFormat.Format_YUYV
帧使用每分量8位的打包YUV格式进行存储,U和V面水平子采样(Y-U-Y-V),即两个水平相邻的像素被存储为一个32位宏像素,该像素具有每个像素的Y值和共同的U和V值。
QVideoFrameFormat.Format_NV12
帧数据使用每个分量8位的半平面YUV格式存储,Y面(Y)后跟水平和垂直子采样并打包的UV平面(U-V)。
QVideoFrameFormat.Format_NV21
帧数据使用每个分量8位的半平面YUV格式存储,Y面(Y)后跟水平和垂直子采样并打包的VU平面(V-U)。
QVideoFrameFormat.Format_IMC1
帧数据使用每个分量8位的平面YUV格式存储,U和V面水平垂直子采样。这类似于Format_YUV420P类型,不同之处在于U和V面的每行字节填充到与Y面相同的步长。
QVideoFrameFormat.Format_IMC2
帧数据使用每个分量8位的平面YUV格式存储,U和V面水平垂直子采样。这类似于Format_YUV420P类型,不同之处在于U和V面的行是交错排列的,即每个U数据行后面跟着一个V数据行,形成一个与Y数据行相同的步长的单行。
QVideoFrameFormat.Format_IMC3
帧数据使用每个分量8位的平面YVU格式存储,V和U面水平垂直子采样。这类似于Format_YV12类型,不同之处在于V和U面的每行字节填充到与Y面相同的步长。
QVideoFrameFormat.Format_IMC4
帧数据使用每个分量8位的平面YVU格式存储,V和U面水平垂直子采样。这类似于Format_YV12类型,不同之处在于V和U面的行是交错排列的,即每个V数据行后面跟着一个U数据行,形成一个与Y数据行相同的步长的单行。
QVideoFrameFormat.Format_P010
帧数据使用每个分量16位的半平面YUV格式存储,Y面(Y)后跟水平和垂直子采样并打包的UV平面(U-V)。每个分量的最高10位被使用。
QVideoFrameFormat.Format_P016
帧数据使用每个分量16位的半平面YUV格式存储,Y面(Y)后跟水平和垂直子采样并打包的UV平面(U-V)。
QVideoFrameFormat.Format_Y8
帧数据使用8位灰度格式存储。
QVideoFrameFormat.Format_Y16
帧数据使用16位线性灰度格式存储。小端格式。
QVideoFrameFormat.Format_Jpeg
帧数据以压缩的JPEG格式存储。
QVideoFrameFormat.Format_SamplerExternalOES
帧数据以外部OES纹理格式存储。目前仅在Android上使用。
QVideoFrameFormat.Format_SamplerRect
帧数据以矩形纹理格式存储(GL_TEXTURE_RECTANGLE)。仅在macOS上使用,通过基于OpenGL的渲染硬件接口。纹理中存储的基础像素格式为Format_BRGA8888。
QVideoFrameFormat.Format_YUV420P10
类似于YUV420,但每个分量使用16位,其中10位为有效位。
- class Direction#
枚举视频扫描行布局方向。
常量
描述
QVideoFrameFormat.TopToBottom
扫描行从框架顶部到底部排列。
QVideoFrameFormat.BottomToTop
扫描行从框架底部到顶部排列。
- class YCbCrColorSpace#
使用
ColorSpace
代替。枚举视频帧的Y'CbCr色彩空间。
常量
描述
QVideoFrameFormat.YCbCr_Undefined
没有指定色彩空间。
QVideoFrameFormat.YCbCr_BT601
ITU-R建议标准BT.601定义的Y'CbCr色彩空间,Y值范围为16到235,Cb/Cr范围为16到240。主要用于针对CRT显示屏的旧视频。
QVideoFrameFormat.YCbCr_BT709
ITU-R BT.709定义的Y'CbCr色彩空间,与YCbCr_BT601具有相同的值范围。目前最常用的色彩空间。
QVideoFrameFormat.YCbCr_xvYCC601
此值已弃用。请检查
ColorRange
。这是BT.601色彩空间,其值范围扩展到0到255。与BT.601向后兼容,并使用BT.601范围之外的值来表示更宽的色彩范围。QVideoFrameFormat.YCbCr_xvYCC709
此值已弃用。请检查
ColorRange
。这是BT.709色彩空间,其值范围扩展到0到255。QVideoFrameFormat.YCbCr_JPEG
在大多数JPEG文件中使用满范围的Y'CbCr色彩空间。
QVideoFrameFormat.YCbCr_BT2020
ITU-R BT.2020定义的色彩空间。主要用于HDR视频。
- class ColorSpace#
列出视频帧的色彩空间。
常量
描述
QVideoFrameFormat.ColorSpace_Undefined
没有指定色彩空间。
QVideoFrameFormat.ColorSpace_BT601
ITU-R推荐标准BT.601定义的色彩空间,Y值范围为16到235,Cb/Cr范围为16到240。主要用于针对CRT显示屏的旧视频。
QVideoFrameFormat.ColorSpace_BT709
ITU-R BT.709定义的色彩空间,与ColorSpace_BT601具有相同的值范围。目前最常用的色彩空间。
QVideoFrameFormat.ColorSpace_AdobeRgb
在最常用的JPEG文件中使用满范围的YUV色彩空间。
QVideoFrameFormat.ColorSpace_BT2020
ITU-R BT.2020定义的色彩空间。主要用于HDR视频。
自6.4版开始增加。
- class ColorTransfer#
常量
描述
QVideoFrameFormat.ColorTransfer_Unknown
色彩转换函数未知。
QVideoFrameFormat.ColorTransfer_BT709
色彩值按照BT709进行编码。另请参阅https://www.itu.int-rec/R-REC-BT.709/en。这接近但不完全等同于2.2的gamma曲线,并且具有与sRGB相同的传输曲线。
QVideoFrameFormat.ColorTransfer_BT601
色彩值按照BT601进行编码。另请参阅https://www.itu.int-rec/R-REC-BT.601/en。
QVideoFrameFormat.ColorTransfer_Linear
色彩值是线性的。
QVideoFrameFormat.ColorTransfer_Gamma22
色彩值使用2.2的gamma进行编码。
QVideoFrameFormat.ColorTransfer_Gamma28
色彩值使用2.8的gamma进行编码。
QVideoFrameFormat.ColorTransfer_ST2084
色彩值使用STME ST 2084进行编码。这是最常见的HDR传输函数,通常被称为“感知量化器”。另请参阅https://www.itu.int-rec/R-REC-BT.2100和https://en.wikipedia.org/wiki/Perceptual_quantizer。
QVideoFrameFormat.ColorTransfer_STD_B67
色彩值使用ARIB STD B67进行编码。此传输函数也常被称为“混合对数gamma”。另请参阅https://www.itu.int-rec/R-REC-BT.2100和https://en.wikipedia.org/wiki/Hybrid_log-gamma。
自6.4版开始增加。
- class ColorRange#
描述了视频数据所使用的颜色范围。视频数据通常是全色域,其中所有值都被使用,或者是传统上在 YUV 视频格式中使用的更有限的范围,其中只有一部分值被使用。
常量
描述
QVideoFrameFormat.ColorRange_Unknown
视频的颜色范围未知。
QVideoFrameFormat.ColorRange_Video
大多数 YUV 视频格式传统上使用的颜色范围。对于 8 位格式,Y 组件限制在 16 到 235 之间。U 和 V 组件限制在 16 到 240 之间
对于较深的位深,将这两个值乘以 2^(深度-8)。
常量
描述
QVideoFrameFormat.ColorRange_Full
全色域。所有 0 到 2^深度 - 1 之间的值都是有效的。
自6.4版开始增加。
- PySide6.QtMultimedia.QVideoFrameFormat.NPixelFormats#
- __init__(size, pixelFormat)#
- 参数:
size –
QSize
pixelFormat –
PixelFormat
使用给定的帧大小和像素格式构建视频流。
- __init__()
构建一个空视频流格式。
- __init__(format)
- 参数:
format –
QVideoFrameFormat
构建
other
的副本。- colorRange()#
- 返回类型:
返回应用于渲染视频流的颜色范围。
另请参阅
- colorSpace()#
- 返回类型:
返回视频流的颜色空间。
另请参阅
- colorTransfer()#
- 返回类型:
返回应用于渲染视频流的颜色转换函数。
另请参阅
- fragmentShaderFileName()#
- 返回类型:
str
- frameHeight()#
- 返回类型:
int
返回视频流中帧的高度。
- frameRate()#
- 返回类型:
float
以每秒帧数的形式返回视频流的帧率。
另请参阅
返回视频流中帧的尺寸。
- frameWidth()#
- 返回类型:
int
返回视频流中帧的宽度。
另请参阅
- static imageFormatFromPixelFormat(format)#
- 参数:
format –
PixelFormat
- 返回类型:
返回与视频帧像素格式等效的图像格式。如果没有等效格式,则返回QImage::Format_Invalid。
注意
一般情况下,QImage不处理YUV格式。
- isMirrored()#
- 返回类型:
bool
如果表面在垂直轴周围镜像,则返回
true
。这通常是来自移动设备前摄像头的视频帧所需要的。注意
这里的镜像与QImage::mirrored不同,因为垂直镜像的QImage将在其x轴周围镜像。
- isValid()#
- 返回类型:
bool
确定视频表面格式是否有有效的像素格式和帧大小。
如果格式有效则返回true,否则返回false。
- maxLuminance()#
- 返回类型:
float
- __ne__(format)#
- 参数:
format –
QVideoFrameFormat
- 返回类型:
bool
如果
other
与这个视频格式不同,则返回true,如果它们相同,则返回false。- __eq__(format)#
- 参数:
format –
QVideoFrameFormat
- 返回类型:
bool
如果
other
与这个视频格式相同,则返回true,如果它们不同,则返回false。- pixelFormat()#
- 返回类型:
返回视频流中帧的像素格式。
返回与图像
format
相当的媒体像素格式。如果没有有效格式,则返回Format_Invalid
。注意
一般情况下,QImage不处理YUV格式。
- static pixelFormatToString(pixelFormat)#
- 参数:
pixelFormat –
PixelFormat
- 返回类型:
str
返回给定
pixelFormat
的字符串表示形式。- planeCount()#
- 返回类型:
int
返回所使用平面的数量。这个数字取决于像素格式,对于基于RGB的格式来说是1,对于基于YUV的格式则是在1到3之间的一个数字。
返回扫描线的方向。
- setColorRange(range)#
- 参数:
range –
ColorRange
将用于渲染视频流的颜色转换范围设置为
range
。另请参阅
- setColorSpace(colorSpace)#
- 参数:
colorSpace –
ColorSpace
将视频流的颜色空间设置为
colorSpace
。另请参阅
- setColorTransfer(colorTransfer)#
- 参数:
colorTransfer –
ColorTransfer
将用于渲染视频流的颜色转换函数设置为
colorTransfer
。另请参阅
- setFrameRate(rate)#
- 参数:
rate – float
设置视频流的帧率(每秒帧数)。
另请参阅
设置视频流中帧的大小为
size
。这将重置 viewport() 以填充整个帧。
另请参阅
- setFrameSize(width, height)
- 参数:
width – int
height – int
这是一个重载函数。
设置视频流中帧的
width
和height
。这将重置 viewport() 以填充整个帧。
- setMaxLuminance(lum)#
- 参数:
lum – float
将最大亮度设置为给定的值,
lum
。- setMirrored(mirrored)#
- 参数:
mirrored – bool
设置表面是否在垂直轴上
mirrored
。这对于来自移动设备前摄像头的视频帧通常需要。默认值是 false。设置扫描线的
direction
。另请参阅
将视频流的视口设置为
viewport
。另请参阅
- setYCbCrColorSpace(colorSpace)#
- 参数:
colorSpace –
YCbCrColorSpace
注意
此函数已弃用。
请使用
setColorSpace()
代替设置视频流的 Y’CbCr 颜色
空间
。它仅用于原始 YUV 帧类型。另请参阅
- swap(other)#
- 参数:
other –
QVideoFrameFormat
交换当前的视频帧格式与
other
。- updateUniformData(dst, frame, transform, opacity)#
- 参数:
dst –
QByteArray
frame –
QVideoFrame
transform –
QMatrix4x4
opacity – float
- vertexShaderFileName()#
- 返回类型:
str
返回视频流的视口。
视口是视频帧实际显示的区域。
默认情况下,视口覆盖整个帧。
另请参阅
- yCbCrColorSpace()#
- 返回类型:
注意
此函数已弃用。
请使用
colorSpace()
代替返回视频流的 Y’CbCr 颜色空间。
另请参阅