Windows Media Video 9 Encoder
The Windows Media Video 9 encoder encodes video streams. The encoder supports the following four categories of encoded output.
- Windows Media Video 9 Simple Profile
- Windows Media Video 9 Main Profile
- Windows Media Video 9 Advanced Profile
- Windows Media Video 9.1 Image
The class identifier (CLSID) for the Windows Media Video encoder is represented by the constant CLSID_CWMV9EncMediaObject. You can create an instance of the video encoder by calling CoCreateInstance.
A video encoder object exposes the IMediaObject interface so that the object can be used as a DirectX Media Object (DMO), and it exposes the IMFTransform interface so that the object can be used as a Media Foundation Transform (MFT).
A video encoder 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 behaves as a DMO or an MFT.
|Operating system||Encoder behavior|
|Windows XP||A Windows Media video encoder always behaves as a DMO.|
|Windows Vista and Windows 7||By default, a Windows Media video encoder behaves as a DMO. If you obtain an IMFTransform interface on a video encoder, it behaves as an MFT.|
The Windows Media Video encoder supports the following input media subtypes when it is acting as a DMO.
The Windows Media Video encoder supports the following input media subtypes when it is acting as an MFT.
The following table shows the four-character codes (FOURCCs) that correspond to the categories of encoded output.
|Windows Media Video 9 Simple Profile||"WMV3"|
|Windows Media Video 9 Main Profile||"WMV3"|
|Windows Media Video 9 Advanced Profile||"WVC1"|
|Windows Media Video 9.1 Image||"WMVP" for 9.1, "WVP2" for 9.1 version 2|
To distinguish between Simple Profile and Main Profile, set the MFPKEY_DECODERCOMPLEXITYREQUESTED property.
The Windows Media Video 9 encoder supports the following properties.
Specifies the overhead, in bytes per packet, required for the container used to store the compressed content.
Specifies the average frame rate of video content, in frames per second.
Specifies the buffer window, in milliseconds, of a constrained variable-bit-rate (VBR) stream at its average bit rate (specified by MFPKEY_RAVG).
Specifies the delta increase between the picture quantizer of the anchor frame and the picture quantizer of the B-frame.
Specifies the buffer window, in milliseconds, of a constrained variable-bit-rate (VBR) stream at its peak bit rate (specified by MFPKEY_RMAX).
Specifies whether the encoded video bit stream contains a buffer fullness value with every key frame.
Specifies the encoding pattern to use at the beginning of a group of pictures.
Specifies the number of video frames encoded by the codec.
Specifies the number of video frames encoded by the codec that actually contain data.
This property is superseded by MFPKEY_COMPLEXITYEX.
Specifies the complexity of the encoder algorithm.
Specifies the type of optimization to use for the Windows Media Video 9 Advanced Profile codec.
Specifies a numeric representation of the tradeoff between motion smoothness and image quality in codec output.
Specifies the device conformance template to which the encoded content conforms.
Specifies the device conformance template that you want to use for video encoding.
Specifies the method used to encode the motion vector information.
Specifies whether the codec will use the noise filter when encoding.
Specifies the desired quality level for quality based (1-pass) variable-bit-rate (VBR) encoding.
Specifies the number of video frames dropped during encoding.
Specifies the end of an encoding pass.
Specifies an intermediate frame height for encoded video.
Specifies an intermediate frame width for encoded video.
Specifies whether the codec should use median filtering during encoding.
Specifies the FOURCC that identifies the encoder you want to use.
Specifies whether the encoder is allowed to drop frames.
Specifies whether the codec output will be interlaced.
Specifies the maximum time, in milliseconds, between key frames in the codec output.
Specifies the number of frames after the current frame that the codec will evaluate before encoding the current frame.
Specifies whether the codec should use the in-loop deblocking filter during encoding.
Specifies the cost method used by the codec to determine which macroblock mode to use.
Specifies the method to use for motion matching.
Specifies the types of video information that are used in motion search operations.
Specifies the range used in motion searches.
Specifies whether the codec should attempt to detect noisy frame edges and remove them.
Specifies the number of bidirectional predictive frames (B-frames).
Specifies the number of threads that the codec will use for encoding.
Specifies the maximum number of passes supported by the codec.
Specifies the number of passes that the codec will use to encode the content.
Specifies whether the codec should use conservative perceptual optimization when encoding.
Specifies whether the encoder produces dummy frame entries in the bit stream for duplicate frames.
Specifies the degree to which the codec should reduce the effective color range of the video.
Specifies the average bit rate, in bits per second, used for 2-pass variable-bit-rate (VBR) encoding.
Specifies whether the encoder uses RD-based sub-pixel MV search.
For segment re-encoding, specifies the buffer size.
For segment re-encoding, specifies the duration of the segment to be re-encoded.
For segment re-encoding, specifies the quantizer of the frame prior to the starting segment.
For segment re-encoding, specifies the starting buffer fullness.
Specifies the peak bit rate, in bits per second, used for constrained 2-pass variable-bit-rate (VBR).
Specifies the number of video frames passed to the encoder during the encoding process.
Specifies whether the codec will use variable-bit-rate (VBR) encoding.
Specifies the actual quality level for quality based (1-pass) variable-bit-rate (VBR) encoding.
Specifies whether the codec will use video scaling optimization.
Specifies the amount of content, in milliseconds, that can fit into the model buffer.
For segment re-encoding, specifies the codec private data of the file that is being re-encoded.
Specifies the type of logic that the codec will use to detect interlaced source video.
Specifies the number of video frames that were skipped because they were duplicates of previous frames.
|Windows XP, Windows Vista, or Windows 7|