Windows Media Video 9 编码器

Windows Media Video 9 编码器对视频流进行编码。 编码器支持以下四类编码输出。

  • Windows Media Video 9 简单配置文件
  • Windows Media Video 9 主配置文件
  • Windows Media Video 9 高级配置文件
  • Windows Media Video 9.1 图像

类标识符

Windows Media Video 编码器 (CLSID) 的类标识符由常 量CLSID_CWMV9EncMediaObject表示。 可以通过调用 CoCreateInstance 创建视频编码器的实例。

接口

视频编码器对象公开 IMediaObject 接口,以便对象可用作 DirectX 媒体对象 (DMO) ,并公开 IMFTransform 接口,以便对象可用作媒体基础转换 (MFT) 。

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

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

 

输入格式

Windows Media Video 编码器在充当 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 Media Video 编码器在充当 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

输出格式

下表显示了对应于编码输出类别 (FOURC) 的四个字符代码。

类别 FOURCC
Windows Media Video 9 简单配置文件 “WMV3”
Windows Media Video 9 主配置文件 “WMV3”
Windows Media Video 9 高级配置文件 “WVC1”
Windows Media Video 9.1 图像 “WMVP”用于 9.1,“WVP2”用于 9.1 版本 2

 

若要区分简单配置文件和主配置文件,请设置 MFPKEY_DECODERCOMPLEXITYREQUESTED 属性。

属性

Windows Media Video 9 编码器支持以下属性。

属性 说明
MFPKEY_ASFOVERHEADPERFRAME 指定用于存储压缩内容的容器所需的开销(以字节为单位)。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_AVGFRAMERATE 指定视频内容的平均帧速率(以每秒帧为单位)。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只读。
MFPKEY_BAVG 指定受约束的可变比特率 (VBR) 流 (MFPKEY_RAVG) 指定的平均比特率 (的缓冲区窗口( 毫秒为单位)。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
读/写。
MFPKEY_BDELTAQP 指定定位框的图片量化器和 B 帧的图片量化器之间的增量增加。
Windows XP 及更高版本。
主配置文件,高级配置文件。
只写。
MFPKEY_BMAX 指定受约束的可变比特率 () 流 (MFPKEY_RMAX) 指定的峰值比特率 (的缓冲区窗口( 毫秒为单位)。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
读/写。
MFPKEY_BUFFERFULLNESSINFIRSTBYTE 指定编码的视频位流是否包含每个关键帧的缓冲区完整性值。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只读。
MFPKEY_CLOSEDENTRYPOINT 指定要在一组图片的开头使用的编码模式。
Windows Vista 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_CODEDFRAMES 指定编解码器编码的视频帧数。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只读。
MFPKEY_CODEDNONZEROFRAMES 指定实际包含数据的编解码器编码的视频帧数。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只读。
MFPKEY_COMPLEXITY 此属性由 MFPKEY_COMPLEXITYEX 取代。
MFPKEY_COMPLEXITYEX 指定编码器算法的复杂性。
Windows Vista 及更高版本。
简单配置文件,主配置文件。 高级配置文件。
只写。
MFPKEY_COMPRESSIONOPTIMIZATIONTYPE 指定要用于 Windows Media Video 9 高级配置文件编解码器的优化类型。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
写入。
MFPKEY_CRISP 指定编解码器输出中运动平滑度与图像质量之间的权衡的数字表示形式。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_DATARATE 未使用。
MFPKEY_DECODERCOMPLEXITYPROFILE 指定编码内容符合的设备符合性模板。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只读。
MFPKEY_DECODERCOMPLEXITYREQUESTED 指定要用于视频编码的设备符合性模板。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_DELTAMVRANGEINDEX 指定用于对运动向量信息进行编码的方法。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_DENOISEOPTION 指定编解码器在编码时是否将使用噪声筛选器。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_DESIRED_VBRQUALITY 指定基于质量 (一次通过) 可变比特率 (VBR) 编码所需的质量级别。
Windows Vista 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_DROPPEDFRAMES 指定编码期间丢弃的视频帧数。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只读。
MFPKEY_ENDOFPASS 指定编码传递的结束。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_FORCEFRAMEHEIGHT 指定编码视频的中间帧高度。
Windows XP 及更高版本。
高级配置文件。
只写。
MFPKEY_FORCEFRAMEWIDTH 指定编码视频的中间帧宽度。
Windows XP 及更高版本。
高级配置文件。
只写。
MFPKEY_FORCEMEDIANSETTING 指定编解码器在编码期间是否应使用中值筛选。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_FOURCC 指定标识要使用的编码器的 FOURCC。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_FRAMECOUNT 已过时。
MFPKEY_FULLFRAMERATE 指定是否允许编码器删除帧。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_INTERLACEDCODINGENABLED 指定是否对编解码器输出进行交错。
Windows XP 及更高版本。
高级配置文件。
只写。
MFPKEY_KEYDIST 指定编解码器输出中关键帧之间的最长时间(以毫秒为单位)。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_LIVEENCODE 未使用。
MFPKEY_LOOKAHEAD 指定编码解码器在编码当前帧之前计算的当前帧之后的帧数。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_LOOPFILTER 指定编解码器在编码期间是否应使用循环内阻止筛选器。
Windows XP 及更高版本。
主配置文件,高级配置文件。
只写。
MFPKEY_MACROBLOCKMODECOSTMETHOD 指定编解码器用于确定要使用的宏块模式的成本方法。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_MOTIONMATCHMETHOD 指定要用于运动匹配的方法。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_MOTIONSEARCHLEVEL 指定运动搜索操作中使用的视频信息类型。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_MOTIONSEARCHRANGE 指定运动搜索中使用的范围。
Windows XP 及更高版本。
主配置文件,高级配置文件。
只写。
MFPKEY_NOISEEDGEREMOVAL 指定编解码器是否应尝试检测干扰帧边缘并将其删除。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_NUMBFRAMES 指定 B 帧) (双向预测帧数。
Windows XP 及更高版本。
主配置文件,高级配置文件。
只写。
MFPKEY_NUMTHREADS 指定编解码器将用于编码的线程数。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_PASSESRECOMMENDED 指定编解码器支持的最大传递数。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只读。
MFPKEY_PASSESUSED 指定编解码器将用于对内容进行编码的传递数。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
读/写。
MFPKEY_PERCEPTUALOPTLEVEL 指定编解码器在编码时是否应使用保守的感知优化。
Windows XP 及更高版本。
主配置文件,高级配置文件。
只写。
MFPKEY_PRODUCEDUMMYFRAMES 指定编码器是否在重复帧的位流中生成假帧条目。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_QPPERFRAME 指定 QP。
Windows Vista 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_RANGEREDUX 指定编解码器应减小视频的有效颜色范围的程度。
Windows XP 及更高版本。
高级配置文件。
只写。
MFPKEY_RAVG 指定用于 2 次传递可变比特率 (VBR) 编码的平均比特率(以比特/秒为单位)。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
读/写。
MFPKEY_RDSUBPIXELSEARCH 指定编码器是否使用基于 RD 的子像素 MV 搜索。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_REENCENDBUFFERSIZE 对于段重新编码,指定缓冲区大小。
Windows Vista 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_REENCDURATION 对于段重新编码,指定要重新编码的段的持续时间。
Windows Vista 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_REENCQPREF 对于段重新编码,指定起始段前帧的量化器。
Windows Vista 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_REENCSTARTBUFFERSIZE 对于段重新编码,指定起始缓冲区的填充度。
Windows Vista 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_RMAX 指定用于受约束的二通可变比特率 (VBR) 的峰值比特率(以位数/秒为单位)。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
读/写。
MFPKEY_TOTALFRAMES 指定在编码过程中传递给编码器的视频帧数。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只读。
MFPKEY_VBRENABLED 指定编解码器是否将使用可变比特率 (VBR) 编码。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
读/写。
MFPKEY_VBRQUALITY 指定基于质量 (一通) 可变比特率 (VBR) 编码的实际质量级别。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_VIDEOSCALING 指定编解码器是否将使用视频缩放优化。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只写。
MFPKEY_VIDEOWINDOW 指定可放入模型缓冲区的内容量(以毫秒为单位)。
Windows XP 及更高版本。
高级配置文件。
只写。
MFPKEY_VOLHEADERFORREENCODE 对于段重新编码,指定要重新编码的文件的编解码器私有数据。
Windows Vista 及更高版本。
简单配置文件、主配置文件、高级配置文件、映像。
只写。
MFPKEY_VTYPE 指定编解码器将用于检测交错源视频的逻辑类型。
Windows XP 及更高版本。
高级配置文件。
只写。
MFPKEY_ZEROBYTEFRAMES 指定跳过的视频帧数,因为它们是以前帧的重复帧。
Windows XP 及更高版本。
简单配置文件、主配置文件、高级配置文件。
只读

 

要求

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

另请参阅

编解码器对象

编解码器实现