视频子类型 GUID
标头文件 mfapi.h 中定义了以下视频子类型 GUID。 若要指定子类型,请在媒体类型上设置 MF_MT_SUBTYPE 属性。
使用这些子类型时,请将 MF_MT_MAJOR_TYPE 属性设置为 MFMediaType_Video。
- 未压缩的 RGB 格式
- YUV 格式:8 位和 Palettized
- YUV 格式:10 位和 16 位
- 亮度和深度格式
- 编码的视频类型
- 从 FOURC 和 D3DFORMAT 值创建子类型 GUID
- 相关主题
未压缩的 RGB 格式
GUID | 描述 |
---|---|
MFVideoFormat_RGB8 | RGB,每个像素 8 位(bpp)。 (与 D3DFMT_P8相同的内存布局。 |
MFVideoFormat_RGB555 | RGB 555,16 bpp。 (与 D3DFMT_X1R5G5B5相同的内存布局。 |
MFVideoFormat_RGB565 | RGB 565,16 bpp。 (与 D3DFMT_R5G6B5相同的内存布局。 |
MFVideoFormat_RGB24 | RGB,24 bpp。 |
MFVideoFormat_RGB32 | RGB,32 bpp。 |
MFVideoFormat_ARGB32 | RGB,带 alpha 通道的 32 bpp。 |
MFVideoFormat_A2R10G10B10 | RGB,每个颜色的 10 bpp,2 个 bpp 表示 alpha。 (与 D3DFMT_A2B10G10R10相同的内存布局) |
MFVideoFormat_A16B16G16R16F | RGB,带 alpha 通道的 16 bpp。 (与 D3DFMT_A16B16G16R16F相同的内存布局) |
注意
这些子类型与之前 SDK 中使用的 RGB 子类型 GUID 不匹配,例如 DirectShow。
YUV 格式:8 位和 Palettized
GUID | 格式 | 采样 | 打包或平面 | 每个通道的位数 |
---|---|---|---|---|
MFVideoFormat_AI44 | AI44 | 4:4:4 | 包装好的 | Palettized |
MFVideoFormat_AYUV | AYUV | 4:4:4 | 包装好的 | 8 |
MFVideoFormat_I420 | I420 | 4:2:0 | 平面的 | 8 |
MFVideoFormat_IYUV | IYUV | 4:2:0 | 平面的 | 8 |
MFVideoFormat_NV11 | NV11 | 4:1:1 | 平面的 | 8 |
MFVideoFormat_NV12 | NV12 | 4:2:0 | 平面的 | 8 |
MFVideoFormat_NV21 | NV21 | 4:2:0 | 平面的 | 8 |
MFVideoFormat_UYVY | UYVY | 4:2:2 | 包装好的 | 8 |
MFVideoFormat_Y41P | Y41P | 4:1:1 | 包装好的 | 8 |
MFVideoFormat_Y41T | Y41T | 4:1:1 | 包装好的 | 8 |
MFVideoFormat_Y42T | Y42T | 4:2:2 | 包装好的 | 8 |
MFVideoFormat_YUY2 | YUY2 | 4:2:2 | 包装好的 | 8 |
MFVideoFormat_YVU9 | YVU9 | 8:4:4 | 平面的 | 9 |
MFVideoFormat_YV12 | YV12 | 4:2:0 | 平面的 | 8 |
MFVideoFormat_YVYU | YVYU | 4:2:2 | 包装好的 | 8 |
建议的 YUV 格式在主题 推荐的 8 位 YUV 格式进行视频渲染中进行了详细介绍。
注意
I420 和 IYUV 在内存中具有相同的布局,但分配了不同的子类型 GUID。 子类型 GUID 对应于 FOURCC 代码“I420”和“IYUV”:有关详细信息,请参阅 Video FOURC。
YUV 格式:10 位和 16 位
GUID | 格式 | 采样 | 打包或平面 | 每个通道的位数 |
---|---|---|---|---|
MFVideoFormat_P010 | P010 | 4:2:0 | 平面的 | 10 |
MFVideoFormat_P016 | P016 | 4:2:0 | 平面的 | 16 |
MFVideoFormat_P210 | P210 | 4:2:2 | 平面的 | 10 |
MFVideoFormat_P216 | P216 | 4:2:2 | 平面的 | 16 |
MFVideoFormat_v210 | v210 | 4:2:2 | 包装好的 | 10 |
MFVideoFormat_v216 | v216 | 4:2:2 | 包装好的 | 16 |
MFVideoFormat_v410 | v40 | 4:4:4 | 包装好的 | 10 |
MFVideoFormat_Y210 | Y210 | 4:2:2 | 包装好的 | 10 |
MFVideoFormat_Y216 | Y216 | 4:2:2 | 包装好的 | 16 |
MFVideoFormat_Y410 | Y40 | 4:4:4 | 包装好的 | 10 |
MFVideoFormat_Y416 | Y416 | 4:4:4 | 包装好的 | 16 |
有关这些格式的详细信息,请参阅 10 位和 16 位 YUV 视频格式。
亮度和深度格式
GUID | 描述 |
---|---|
MFVideoFormat_L8 | 仅 8 位亮度。 (bpp)。 (与 D3DFMT_L8相同的内存布局。 |
MFVideoFormat_L16 | 仅 16 位亮度。 (与 D3DFMT_L16相同的内存布局。 |
MFVideoFormat_D16 | 16 位 z 缓冲区深度。 (与 D3DFMT_D16相同的内存布局。 |
编码的视频类型
GUID | FOURCC | 描述 |
---|---|---|
MFVideoFormat_DV25 | “dv25” | DVCPRO 25 (525-60 或 625-50)。 |
MFVideoFormat_DV50 | “dv50” | DVCPRO 50 (525-60 或 625-50)。 |
MFVideoFormat_DVC | “dvc” | DVC/DV 视频。 |
MFVideoFormat_DVH1 | “dvh1” | DVCPRO 100 (1080/60i、1080/50i 或 720/60P)。 |
MFVideoFormat_DVHD | “dvhd” | HD-DVCR (1125-60 或 1250-50)。 |
MFVideoFormat_DVSD | “dvsd” | SDL-DVCR(525-60 或 625-50)。 |
MFVideoFormat_DVSL | “dvsl” | SD-DVCR(525-60 或 625-50)。 |
MFVideoFormat_H263 | “H263” | H.263 视频。 |
MFVideoFormat_H264 | “H264” | H.264 视频。 媒体示例包含带有起始代码的 H.264 位流数据,并且具有交错的 SPS/PPS。 每个示例都包含一个完整的图片,一个字段或一帧。 |
MFVideoFormat_H265 | “H265” | H.265 视频。 |
MFVideoFormat_H264_ES | 不適用 | H.264 基本流。 此媒体类型与 MFVideoFormat_H264相同,但媒体示例包含碎片 H.264 位流。 每个示例可能包含部分图片;多个完整图片;或一个或多个完整图片加上部分图片。 |
MFVideoFormat_HEVC | “HEVC” | HEVC 主配置文件和主要静止图片配置文件。 每个示例都包含一个完整的图片。 在 Windows 8.1 及更高版本中受支持。 HEVC 主配置文件和主静止图片配置文件基本流。 |
MFVideoFormat_HEVC_ES | “HEVS” | 此媒体类型与 MFVideoFormat_HEVC相同,但媒体示例包含碎片的 HEVC 位流除外。 每个示例可能包含部分图片;多个完整图片;或一个或多个完整图片加上部分图片。 在 Windows 8.1 及更高版本中受支持。 |
MFVideoFormat_M4S2 | “M4S2” | MPEG-4 第 2 部分视频。 |
MFVideoFormat_MJPG | “MJPG” | 动作 JPEG。 |
MFVideoFormat_MP43 | “MP43” | Microsoft MPEG 4 编解码器版本 3。 不再支持此编解码器。 |
MFVideoFormat_MP4S | “MP4S” | ISO MPEG 4 编解码器版本 1。 |
MFVideoFormat_MP4V | “MP4V” | MPEG-4 第 2 部分视频。 |
MFVideoFormat_MPEG2 | 不適用 | MPEG-2 视频。 (相当于 DirectShow 中的 MEDIASUBTYPE_MPEG2_VIDEO。 |
MFVideoFormat_VP80 | “MPG1” | VP8 视频。 |
MFVideoFormat_VP90 | “MPG1” | VP9 视频。 |
MFVideoFormat_MPG1 | “MPG1” | MPEG-1 视频。 |
MFVideoFormat_MSS1 | “MSS1” | Windows 媒体屏幕编解码器版本 1。 |
MFVideoFormat_MSS2 | “MSS2” | Windows Media Video 9 屏幕编解码器。 |
MFVideoFormat_WMV1 | “WMV1” | Windows Media Video 编解码器版本 7。 |
MFVideoFormat_WMV2 | “WMV2” | Windows Media Video 8 编解码器。 |
MFVideoFormat_WMV3 | “WMV3” | Windows Media Video 9 编解码器。 |
MFVideoFormat_WVC1 | “WVC1” | SMPTE 421M(“VC-1”)。 |
MFVideoFormat_420O | “420O” | 每个通道 8 位平面 YUV 4:2:0 视频。 |
MFVideoFormat_AV1 | “AV01” | AV1 视频。 |
从 FOURC 和 D3DFORMAT 值创建子类型 GUID
视频格式通常由 FOURC 或 D3DFORMAT 值表示。 保留一系列 GUID,用于将这些值表示为子类型。 这些 GUID 具有窗体 XXXXXXXX-0000-0010-8000-00AA00389B71
,其中 XXXXXXXX
是 4 字节 FOURCC 代码或 D3DFORMAT 值。
如果视频格式具有关联的 FOURCC 或 D3DFORMAT 值,则可以创建相应的子类型 GUID,如下所示:从常量 MFVideoFormat_Base 开始,并将 GUID 的第一 DWORD 替换为视频 FOURCC 或 D3DFORMAT 值。 为此,可以使用 DEFINE_MEDIATYPE_GUID 宏。
注意
DirectShow 还将此系统用于大多数视频子类型,但不适用于未压缩的 RGB 格式。 因此,DirectShow 中的 RGB 子类型与媒体基础中的 RGB 子类型不匹配。
D3DFORMAT 枚举在头文件 d3d9types.h 中定义。 下表显示了最常见的未压缩 RGB 格式和相应的 D3DFORMAT 值。
RGB 格式 | D3DFORMAT 值 |
---|---|
32 位 RGB | D3DFMT_X8R8G8B8 |
带 alpha 通道的 32 位 RGB | D3DFMT_A8R8G8B8 |
24 位 RGB | D3DFMT_R8G8B8 |
RGB 555 (16 位 RGB) | D3DFMT_X1R5G5B5 |
带 alpha 通道的 RGB 555 | D3DFMT_A1R5G5B5 |
RGB 565 (16 位 RGB) | D3DFMT_R5G6B5 |
8 位淡化 RGB | D3DFMT_P8 |
A2 R10 G10 B10 (带 alpha 通道的 32 位 RGB;每个 RGB 通道 10 位) | D3DFMT_A2R10G10B10 |
A2 B10 G10 R10 (带 alpha 通道的 32 位 RGB;每个 RGB 通道 10 位) | D3DFMT_A2B10G10R10 |
仅 8 位亮度。 | D3DFMT_L8 |
仅 16 位亮度。 | D3DFMT_L16 |
16 位 z 缓冲区深度 | D3DFMT_D16 |
有关 FOURC 的详细信息,请参阅 视频 FOURC。
相关主题