Windows媒体视频 7/8 编码器

Windows媒体视频 7/8 编码器实现Windows媒体视频编码器的早期版本。

类标识符

Windows媒体视频 7/8 编码器 (CLSID) 类标识符CLSID_CWMVXEncMediaObject。 可以通过调用 CoCreateInstance 来创建编码器的实例。

接口

视频编码器对象公开 IMediaObject 接口,以便该对象可用作 DirectX Media 对象 (DMO) ,并公开 IMFTransform 接口,以便该对象可用作 Media Foundation Transform (MFT) 。

视频编码器的行为方式为DMO或 MFT,具体取决于获取的接口以及运行Windows的版本。 下表显示了视频编码器作为DMO或 MFT 的行为条件。

操作系统 编码器行为
Windows XP Windows媒体视频编码器始终充当DMO。
Windows Vista 和 Windows 7 默认情况下,Windows媒体视频编码器的行为为DMO。 如果在视频编码器上获取 IMFTransform 接口,则它的行为为 MFT。

 

输入格式

当Windows媒体视频编码器充当DMO时,它支持以下输入媒体子类型。

  • MEDIASUBTYPE_IYUV
  • MEDIASUBTYPE_I420
  • MEDIASUBTYPE_YV12
  • MEDIASUBTYPE_NV11
  • MEDIASUBTYPE_NV12
  • MEDIASUBTYPE_YUY2
  • MEDIASUBTYPE_UYVY
  • MEDIASUBTYPE_YVYU
  • MEDIASUBTYPE_RGB32
  • MEDIASUBTYPE_RGB24
  • MEDIASUBTYPE_RGB565
  • MEDIASUBTYPE_RGB555
  • MEDIASUBTYPE_RGB8
  • MEDIASUBTYPE_PHOTOMOTION

Windows媒体视频编码器在充当 MFT 时支持以下输入媒体子类型。

  • MFVideoFormat_IYUV
  • MFVideoFormat_I420
  • MFVideoFormat_YV12
  • MFVideoFormat_NV11
  • MFVideoFormat_NV12
  • MFVideoFormat_YUY2
  • MFVideoFormat_UYVY
  • MFVideoFormat_YVYU
  • MFVideoFormat_RGB32
  • MFVideoFormat_RGB24
  • MFVideoFormat_RGB565
  • MFVideoFormat_RGB555
  • MFVideoFormat_RGB8
  • MEDIASUBTYPE_PHOTOMOTION

输出格式

下表显示了Windows媒体视频 7/8 编码器支持的输出类型的四个字符代码 (FOURC) 。

类别 FOURCC
Windows媒体视频 7 “WMV1”
Windows媒体视频 8 “WMV2”

 

属性

Windows媒体视频 7/8 编码器支持以下属性。

属性 说明
MFPKEY_ASFOVERHEADPERFRAME 指定用于存储压缩内容的容器所需的开销(以字节为单位)。
Windows XP 及更高版本。
只写。
MFPKEY_AVGFRAMERATE 指定视频内容的平均帧速率(以每秒帧为单位)。
Windows XP 及更高版本。
只读。
MFPKEY_BAVG 指定受约束的可变比特率 (VBR) 流的缓冲区窗口(以毫秒为单位),其平均比特率 (由 MFPKEY_RAVG) 指定。
Windows XP 及更高版本。
读/写。
MFPKEY_BMAX 指定受约束的可变比特率 (VBR) 流的缓冲区窗口(以毫秒为单位),其峰值比特率 (由 MFPKEY_RMAX) 指定。
Windows XP 及更高版本。
读/写。
MFPKEY_BUFFERFULLNESSINFIRSTBYTE 指定编码的视频位流是否包含每个关键帧的缓冲区完整度值。
Windows XP 及更高版本。
只读。
MFPKEY_CODEDFRAMES 指定编解码器编码的视频帧数。
Windows XP 及更高版本。
只读。
MFPKEY_CODEDNONZEROFRAMES 指定由实际包含数据的编解码器编码的视频帧数。
Windows XP 及更高版本。
只读。
MFPKEY_COMPLEXITY 此属性被 MFPKEY_COMPLEXITYEX取代。
MFPKEY_COMPLEXITYEX 指定编码器算法的复杂性。
Windows Vista 及更高版本。
只写。
MFPKEY_CRISP 指定编解码器输出中动作平滑度与图像质量之间的权衡的数字表示形式。
Windows XP 及更高版本。
只写。
MFPKEY_DECODERCOMPLEXITYPROFILE 指定编码内容符合的设备一致性模板。
Windows XP 及更高版本。
只读。
MFPKEY_DECODERCOMPLEXITYREQUESTED 指定要用于视频编码的设备一致性模板。
Windows XP 及更高版本。
只写。
MFPKEY_DROPPEDFRAMES 指定在编码过程中丢弃的视频帧数。
Windows XP 及更高版本。
只读。
MFPKEY_ENDOFPASS 指定编码传递的末尾。
Windows XP 及更高版本。
只写。
MFPKEY_FOURCC 指定用于标识要使用的编码器的 FOURCC。
Windows XP 及更高版本。
只写。
MFPKEY_INTERLACEDCODINGENABLED 指定编解码器输出是否交错。
Windows XP 及更高版本。
只写。
MFPKEY_KEYDIST 指定编解码器输出中关键帧之间的最长时间(以毫秒为单位)。
Windows XP 及更高版本。
只写。
MFPKEY_PASSESRECOMMENDED 指定编解码器支持的最大传递数。
Windows XP 及更高版本。
只读。
MFPKEY_PASSESUSED 指定编解码器将用于对内容进行编码的传递数。
Windows XP 及更高版本。
读/写。
MFPKEY_PRODUCEDUMMYFRAMES 指定编码器是否在重复帧的位流中生成虚拟帧条目。
Windows XP 及更高版本。
只写。
MFPKEY_QPPERFRAME 指定 QP。
Windows Vista 及更高版本。
只写。
MFPKEY_RAVG 指定用于 2 传递可变比特率 (VBR) 编码的平均比特率(以比特/秒为单位)。
Windows XP 及更高版本。
读/写。
MFPKEY_RMAX 指定用于约束的 2 次可变比特率 (VBR) 的峰值比特率(以比特/秒为单位)。
Windows XP 及更高版本。
读/写。
MFPKEY_TOTALFRAMES 指定在编码过程中传递给编码器的视频帧数。
Windows XP 及更高版本。
只读。
MFPKEY_VBRENABLED 指定编解码器是否使用可变比特率 (VBR) 编码。
Windows XP 及更高版本。
读/写。
MFPKEY_VBRQUALITY 指定基于 (1-pass) 可变比特率 (VBR) 编码的质量的实际质量级别。
Windows XP 及更高版本。
只写。
MFPKEY_VIDEOWINDOW 指定可适应模型缓冲区的内容量(以毫秒为单位)。
Windows XP 及更高版本。
只写。
MFPKEY_ZEROBYTEFRAMES 指定跳过的视频帧数,因为它们是以前的帧的重复项。
Windows XP 及更高版本。
只读

 

要求

要求
客户端
Windows XP、Windows Vista 或 Windows 7
标头
Wmcodecdsp.h
DLL
Wmvxencd.dll

另请参阅

编解码器对象

编解码器实现

视频子类型 GUID