视频子类型 GUID

头文件 mfapi.h 中定义了以下视频子类型 GUID。 若要指定子类型,请在媒体类型上设置 MF_MT_SUBTYPE 属性。

使用这些子类型时,请将 MF_MT_MAJOR_TYPE 属性设置为 MFMediaType_Video

未压缩的 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,alpha 为 2 bpp。 (内存布局与 D3DFMT_A2B10G10R10) 相同
MFVideoFormat_A16B16G16R16F RGB,带 alpha 通道的 16 bpp。 (内存布局与 D3DFMT_A16B16G16R16F) 相同

 

注意

这些子类型与以前的 SDK(如 DirectShow)中使用的 RGB 子类型 GUID 不匹配。

 

YUV 格式:8 位和 Palettized

GUID 格式 采样 包装或平面 每个通道的位数
MFVideoFormat_AI44 AI44 4:4:4 Packed Palettized
MFVideoFormat_AYUV AYUV 4:4:4 Packed 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 Packed 8
MFVideoFormat_Y41P Y41P 4:1:1 Packed 8
MFVideoFormat_Y41T Y41T 4:1:1 Packed 8
MFVideoFormat_Y42T Y42T 4:2:2 Packed 8
MFVideoFormat_YUY2 YUY2 4:2:2 Packed 8
MFVideoFormat_YVU9 YVU9 8:4:4 平面 9
MFVideoFormat_YV12 YV12 4:2:0 平面 8
MFVideoFormat_YVYU YVYU 4:2:2 Packed 8

 

推荐的 YUV 格式在推荐 的 8 位 YUV 格式视频呈现主题中进行了详细介绍。

注意

I420 和 IYUV 在内存中具有相同的布局,但分配了不同的子类型 GUID。 子类型 GUID 对应于 FOURCC 代码“I420”和“IYUV”;有关详细信息,请参阅 视频 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 Packed 10
MFVideoFormat_v216 v216 4:2:2 Packed 16
MFVideoFormat_v410 v40 4:4:4 Packed 10
MFVideoFormat_Y210 Y210 4:2:2 Packed 10
MFVideoFormat_Y216 Y216 4:2:2 Packed 16
MFVideoFormat_Y410 Y40 4:4:4 Packed 10
MFVideoFormat_Y416 Y416 4:4:4 Packed 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 Media Screen 编解码器版本 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 视频。

 

从 FOURCC 和 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 子类型与 Media Foundation 中的 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

IMFMediaType

媒体类型 GUID

MF_MT_SUBTYPE

媒体类型

视频媒体类型