PySide6.QtMultimedia.QVideoFrameFormat¶
- class QVideoFrameFormat¶
QVideoFrameFormat
类指定了视频呈现表面的流格式。更多…在版本6.1中添加。
概要¶
方法¶
def
__init__()
def
colorRange()
def
colorSpace()
def
colorTransfer()
def
frameHeight()
def
frameRate()
def
frameSize()
def
frameWidth()
def
isMirrored()
def
isValid()
def
maxLuminance()
def
__ne__()
def
__eq__()
def
pixelFormat()
def
planeCount()
def
rotation()
def
setColorRange()
def
setColorSpace()
def
setFrameRate()
def
setFrameSize()
def
setMirrored()
def
setRotation()
def
setViewport()
def
swap()
def
viewport()
静态函数¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
视频接收器呈现视频帧流。
QVideoFrameFormat
描述了帧的类型并决定了它们应如何呈现。设置视频接收器所需的视频流核心属性是由
pixelFormat()
给出的像素格式,以及由frameSize()
给出的帧尺寸。视频表面上实际显示的帧的区域由
viewport()
给出。一个流的视口可能小于帧的整个区域,以允许视频小于视频帧的最接近最佳尺寸。例如,帧的宽度可能会被扩展,以便每个扫描线的开始是八字节对齐的。其他常见的属性包括
scanLineDirection()
、frameRate()
和 yCrCbColorSpace()。- class PixelFormat¶
枚举视频数据类型。
常量
描述
QVideoFrameFormat.Format_Invalid
该帧无效。
QVideoFrameFormat.Format_ARGB8888
帧使用ARGB格式存储,每个组件8位。
QVideoFrameFormat.Format_ARGB8888_Premultiplied
帧使用预乘ARGB格式存储,每个组件8位。
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的伽马曲线接近,但不完全相同,并且与sRGB中使用的传输曲线相同。
QVideoFrameFormat.ColorTransfer_BT601
颜色值根据BT601进行编码。另请参阅 https://www.itu.int/rec/R-REC-BT.601/en。
QVideoFrameFormat.ColorTransfer_Linear
颜色值是线性的
QVideoFrameFormat.ColorTransfer_Gamma22
颜色值以2.2的伽马值编码
QVideoFrameFormat.ColorTransfer_Gamma28
颜色值以2.8的伽马值编码
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进行编码。此传输函数通常也被称为“混合对数伽马”。另请参阅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__()¶
构建一个空的视频流格式。
- __init__(format)
- Parameters:
format –
QVideoFrameFormat
构造
other
的副本。- __init__(size, pixelFormat)
- Parameters:
size –
QSize
pixelFormat –
PixelFormat
使用给定的帧
size
和像素format
构建视频流。- colorRange()¶
- Return type:
返回应用于渲染视频流的颜色范围。
另请参阅
- colorSpace()¶
- Return type:
返回视频流的色彩空间。
另请参阅
- colorTransfer()¶
- Return type:
返回应用于渲染视频流的颜色传输函数。
另请参阅
- fragmentShaderFileName()¶
- Return type:
字符串
- frameHeight()¶
- Return type:
整数
返回视频流中帧的高度。
- frameRate()¶
- Return type:
浮点数
注意
此函数已弃用。
返回视频流的帧率,单位为每秒帧数。
另请参阅
返回视频流中帧的尺寸。
- frameWidth()¶
- Return type:
整数
返回视频流中帧的宽度。
另请参阅
- static imageFormatFromPixelFormat(format)¶
- Parameters:
格式 –
PixelFormat
- Return type:
返回与视频帧像素
format
等效的图像格式。如果没有等效格式,则返回QImage::Format_Invalid。注意
一般来说,QImage 不处理 YUV 格式。
- isMirrored()¶
- Return type:
布尔
如果表面围绕其垂直轴对称,则返回
true
。QVideoFrameFormat
的转换,特别是旋转和镜像,可以通过相机传感器的方向、相机设置或视频流的方向来确定。镜像在旋转之后应用。
注意
这里的镜像与QImage::mirrored不同,因为垂直镜像的QImage将围绕其x轴进行镜像。
- isValid()¶
- Return type:
布尔
识别视频表面格式是否具有有效的像素格式和帧大小。
如果格式有效则返回 true,否则返回 false。
- maxLuminance()¶
- Return type:
浮点数
- __ne__(format)¶
- Parameters:
format –
QVideoFrameFormat
- Return type:
布尔
如果
other
与此视频格式不同,则返回 true;如果它们相同,则返回 false。- __eq__(format)¶
- Parameters:
format –
QVideoFrameFormat
- Return type:
布尔
如果
other
与此视频格式相同,则返回 true,如果不同,则返回 false。- pixelFormat()¶
- Return type:
返回视频流中帧的像素格式。
返回与图像
format
等效的视频像素格式。如果没有等效格式,则返回Format_Invalid
。注意
一般来说,QImage 不处理 YUV 格式。
- static pixelFormatToString(pixelFormat)¶
- Parameters:
pixelFormat –
PixelFormat
- Return type:
字符串
返回给定
pixelFormat
的字符串表示。- planeCount()¶
- Return type:
整数
返回使用的平面数。这个数字取决于像素格式,对于基于RGB的格式为1,对于基于YUV的格式在1到3之间。
返回表面顺时针旋转的角度。
QVideoFrameFormat
的转换,特别是旋转和镜像,可以通过相机传感器的方向、相机设置或视频流的方向来确定。旋转在镜像之前应用。
另请参阅
返回扫描线的方向。
- setColorRange(range)¶
- Parameters:
范围 –
ColorRange
设置应用于渲染视频流的颜色传输范围为
range
。另请参阅
- setColorSpace(colorSpace)¶
- Parameters:
colorSpace –
ColorSpace
设置视频流的
colorSpace
。另请参阅
- setColorTransfer(colorTransfer)¶
- Parameters:
colorTransfer –
ColorTransfer
设置应用于渲染视频流的颜色传输函数为
colorTransfer
。另请参阅
- setFrameRate(rate)¶
- Parameters:
rate – 浮点数
注意
此函数已弃用。
设置视频流的帧率,单位为每秒帧数。
另请参阅
将视频流中的帧大小设置为
size
。这将重置
viewport()
以填充整个框架。另请参阅
- setFrameSize(width, height)
- Parameters:
width – int
height – int
这是一个重载函数。
设置视频流中帧的
宽度
和高度
。这将重置
viewport()
以填充整个框架。- setMaxLuminance(lum)¶
- Parameters:
lum – 浮点数
将最大亮度设置为给定值,
lum
。- setMirrored(mirrored)¶
- Parameters:
mirrored – 布尔值
设置表面是否围绕其垂直轴
镜像
。QVideoFrameFormat
的转换,特别是旋转和镜像,可以通过相机传感器的方向、相机设置或视频流的方向来确定。镜像在旋转之后应用。
默认值为
false
。设置表面顺时针旋转的
angle
。QVideoFrameFormat
的转换,特别是旋转和镜像,可以通过相机传感器的方向、相机设置或视频流的方向来确定。旋转在镜像之前应用。
默认值为
QtVideo::Rotation::None
。另请参阅
设置扫描线的
方向
。另请参阅
- setStreamFrameRate(rate)¶
- Parameters:
rate – 浮点数
设置视频流的帧率,单位为每秒帧数。
另请参阅
将视频流的视口设置为
viewport
。另请参阅
- setYCbCrColorSpace(colorSpace)¶
- Parameters:
colorSpace –
YCbCrColorSpace
注意
此函数已弃用。
请使用
setColorSpace()
代替设置视频流的Y’CbCr颜色
空间
。它仅用于原始YUV帧类型。另请参阅
- streamFrameRate()¶
- Return type:
浮点数
返回视频流的帧率,单位为每秒帧数。
另请参阅
- swap(other)¶
- Parameters:
其他 –
QVideoFrameFormat
将当前视频帧格式与
other
交换。- updateUniformData(dst, frame, transform, opacity)¶
- Parameters:
dst –
QByteArray
frame –
QVideoFrame
transform –
QMatrix4x4
opacity – 浮点数
- vertexShaderFileName()¶
- Return type:
字符串
返回视频流的视口。
视口是视频帧中实际显示的区域。
默认情况下,视口覆盖整个框架。
另请参阅
- yCbCrColorSpace()¶
- Return type:
注意
此函数已弃用。
请使用
colorSpace()
代替返回视频流的Y’CbCr色彩空间。
另请参阅