Share via


Windows Media Video 9 Codec

banner art

The Windows Media Video 9 encoder object is instantiated using the class identifier CLSID_CWMV9EncMediaObject. The decoder object is instantiated using the class identifier CLSID_CWMVDecMediaObject. The FOURCC for Windows Media Video 9 encoded content is "WMV3".

Main Profile

Some properties are listed as being supported by only the "main profile". Main profile encoding is achieved by setting the MFPKEY_DECODERCOMPLEXITYPROFILE property to "MP".

Encoder Properties

The following properties can be set on the encoder for the Windows Media Video 9 codec.

Property Description
MFPKEY_ASFOVERHEADPERFRAME Specifies the overhead, in bytes per packet, required for the container used to store the compressed content.
MFPKEY_AVGFRAMERATE Specifies the average frame rate of video content, in frames per second.
MFPKEY_BAVG Specifies the buffer window, in milliseconds, of a constrained variable-bit-rate (VBR) stream at its average bit rate (specified by MFPKEY_RAVG).
MFPKEY_BDELTAQP Specifies the delta increase between the picture quantizer of the anchor frame and the picture quantizer of the B-frame.
MFPKEY_BMAX Specifies the buffer window, in milliseconds, of a constrained variable-bit-rate (VBR) stream at its peak bit rate (specified by MFPKEY_RMAX).
MFPKEY_BUFFERFULLNESSINFIRSTBYTE Specifies whether the encoded video bit stream contains a buffer fullness value with every key frame.
MFPKEY_CODEDFRAMES Specifies the number of video frames encoded by the codec.
MFPKEY_CODEDNONZEROFRAMES Specifies the number of video frames encoded by the codec that actually contain data.
MFPKEY_COMPLEXITY This property is superseded by MFPKEY_COMPLEXITYEX.
MFPKEY_COMPLEXITYEX Specifies the encoder algorithm complexity.
MFPKEY_COMPRESSIONOPTIMIZATIONTYPE Specifies the type of optimization to use for the Windows Media Video 9 Advanced Profile codec.
MFPKEY_CRISP Specifies a numeric representation of the tradeoff between motion smoothness and image quality of codec output.
MFPKEY_DECODERCOMPLEXITYPROFILE Specifies the device conformance template to which the encoded content conforms.
MFPKEY_DECODERCOMPLEXITYREQUESTED Specifies the device conformance template that you want to use for video encoding.
MFPKEY_DENOISEOPTION Specifies whether the codec will use the noise filter when encoding.
MFPKEY_DESIRED_VBRQUALITY Specifies the desired quality level for quality based (1-pass) variable-bit-rate (VBR) encoding.
MFPKEY_DROPPEDFRAMES Specifies the number of video frames dropped during encoding.
MFPKEY_ENDOFPASS Specifies the end of an encoding pass.
MFPKEY_FORCEMEDIANSETTING Specifies whether the codec should use median filtering during encoding.
MFPKEY_FOURCC Specifies the FOURCC identifying the encoder you want to use.
MFPKEY_KEYDIST Specifies the maximum time, in milliseconds, between key frames in the codec output.
MFPKEY_LOOKAHEAD Specifies the number of frames after the current frame that the codec will evaluate before encoding the current frame.
MFPKEY_LOOPFILTER Specifies whether the codec should use the in-loop deblocking filter during encoding.
MFPKEY_MACROBLOCKMODECOSTMETHOD Specifies the cost method used by the codec to determine which macroblock mode to use.
MFPKEY_MOTIONMATCHMETHOD Specifies the method to use for motion matching.
MFPKEY_MOTIONSEARCHLEVEL Specifies the types of video information that are used in motion search operations.
MFPKEY_MOTIONSEARCHRANGE Specifies the range used in motion searches.
MFPKEY_NOISEEDGEREMOVAL Specifies whether the codec should attempt to detect noisy frame edges and remove them.
MFPKEY_NUMBFRAMES Specifies the number of bidirectional predictive frames (B-frames).
MFPKEY_NUMTHREADS Specifies the number of threads that the codec will use for encoding.
MFPKEY_PASSESRECOMMENDED Specifies the maximum number of passes supported by the codec.
MFPKEY_PASSESUSED Specifies the number of passes that the codec will use to encode the content.
MFPKEY_PERCEPTUALOPTLEVEL Specifies whether the codec should use conservative perceptual optimization when encoding.
MFPKEY_PRODUCEDUMMYFRAMES Specifies whether the encoder produces dummy frame entries in the bit stream for duplicate frames.
MFPKEY_RAVG Specifies the average bit rate, in bits per second, used for 2-pass variable-bit-rate (VBR) encoding.
MFPKEY_RMAX Specifies the peak bit rate, in bits per second, used for constrained 2-pass variable-bit-rate (VBR).
MFPKEY_TOTALFRAMES Specifies the number of video frames passed to the codec.
MFPKEY_VBRENABLED Specifies whether the codec will use variable-bit-rate (VBR) encoding.
MFPKEY_VBRQUALITY Specifies the actual quality level for quality based (1-pass) variable-bit-rate (VBR) encoding.
MFPKEY_VIDEOSCALING Specifies whether the codec will use video scaling optimization.
MFPKEY_ZEROBYTEFRAMES Specifies the number of video frames that are skipped because they were duplicates of previous frames.

Decoder Properties

The following properties can be set and read on the Windows Media Video 9 decoder.

Property Description
MFPKEY_DECODER_DEINTERLACING Specifies whether the codec decodes interlaced video frames from the compressed stream as progressive frames.
Property Description
MFPKEY_DXVA_ENABLED Specifies whether the decoder will use DirectX video acceleration hardware, if available.

Remarks

A video encoder or decoder object exposes the IMediaObject interface so that the object can be used as a DirectX Media Object (DMO), and the IMFTransform interface so that the object can be used as a Media Foundation Transform (MFT).

A video encoder or decoder behaves as a DMO or an MFT depending on which interfaces you obtain and which version of Windows is running. The following table shows the conditions under which a video encoder or decoder behaves as a DMO or an MFT.

Operating system Encoder or decoder behavior
Windows XP A Windows Media video encoder or decoder always behaves as a DMO.
Windows Vista and Windows 7 By default, a Windows mMedia video encoder or decoder behaves as a DMO. If you obtain an IMFTransform interface on a video encoder or decoder, it behaves as an MFT.

Requirements

Client: Requires Windows 7, Windows Vista, or Windows XP.

Header: Include wmcodecdsp.h.

Library: Use wmvencod.dll for the encoder or wmvdecod.dll for the decoder.

See Also