Feedback |
E-mail us with your comments and feedback about this article. |
Abstract |
Describes the advanced settings of the Windows Media Video 9 Advanced Profile codec. |
Jay Loomis
Microsoft Corporation
April 2006
Applies to:
Microsoft® Windows Media® Encoder 9 Series
Microsoft Windows Media Format SDK
Contents
Windows Media Video 9 Advanced Profile and VC-1
Introduction
The Windows Media Video 9 Advanced Profile codec was introduced in the Windows Media Format 9.5 SDK and Windows Media Player 10. It supports a number of advanced settings that can be used to fine tune video encoding. This article describes the advanced settings and provides some background information about the codec.
For more information about the features of the Windows Media Video 9 Advanced Profile codec, refer to the Windows Media Format SDK documentation.
The advanced settings of the Windows Media Video 9 Advanced Profile codec are enabled through registry settings. This is because the codec must work with Windows Media Encoder, which has not been updated since Windows Media 9 Series and therefore does not have any user interface elements for the new codec.
Back to Top
Codec Versions
Since its introduction, the Windows Media Video 9 Advanced Profile codec has been released in two additional versions. Not all of the settings described in this article apply to all versions of the codec. This section describes the three versions of the codec and provides information about the settings that are supported by each of them.
The original version of the codec uses the FOURCC code, «WMVA». This version was designed for use on 32-bit operating systems. In this article, this version is called the 32-bit WMVA codec. We recommended that you do not use the original version of the codec to encode new content, because the encoded bit stream is not fully compliant with the published VC-1 standard.
When Microsoft Windows XP Professional x64 Edition was released, a version of the Windows Media Video 9 Advanced Profile codec was created to take advantage of the performance benefits offered by the 64-bit operating system. Like the original version, it uses the FOURCC code, «WVC1». In this article, this version is called the 64-bit WVC1 codec.
There is now a third version of the Windows Media Video 9 Advanced Profile codec, that is 32-bit and uses the new FOURCC code, «WVC1». In this article, this version is called the 32-bit WVC1 codec. You can get this new codec in one of the following ways:
It is included in the Windows Media Format 11 SDK.
It can be downloaded from the Windows Download Web site. This option enables you to get the new version of the codec if you are encoding content on Windows Server 2003, as the other two options are not supported on any edition of that operating system.
Because the new version of the Windows Media Video 9 Advanced Profile codec creates an encoded bit stream that is compliant with the published VC-1 standard, we recommended that you use it for all new encoded content.
Back to Top
Registry Settings
The registry settings in this section control the advanced settings of the Windows Media Video 9 Advanced Profile codec. These registry settings are not created by default when the codec is installed. You must add the settings that you want to use.
Most of the registry settings involve a tradeoff between image quality and the size of encoded samples. After these settings are added to the registry, all programs that use the Windows Media Video 9 Advanced Profile codec will use them. In some cases, adding a registry setting will override logic that is built into the codec for controlling advanced features based on content analysis. The results of such an override may not be satisfactory, and you can only reactivate the logic by deleting the registry setting.
All settings should be added under the following registry key:
\\HKEY_CURRENT_USER\Software\Microsoft\Scrunch\WMVideo
Note If the \\HKEY_CURRENT_USER\Software\Microsoft\Scrunch registry key does not exist on your computer, you can create it manually.
The advanced settings are:
Compression Optimization Type
The Compression Optimization Type registry setting specifies the type of optimization to use. This value is a preset selection of values for the other registry settings. If you explicitly set one of the affected settings, that set value will override the preset specified by this setting.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Description |
---|---|
0 | The codec will not force optimization and will use whatever features are specified in other registry settings. In many cases, the codec will use internal logic to determine settings if they are not specified in the registry. This is the default value. |
1 | Enables the features that will produce the best visual quality.
Using this value configures the codec as if you had set the following registry settings:
If any of the settings in the previous list are set in the registry, the value in the registry overrides the values associated with this setting. |
Supported Codec Versions
32-bit WVC1 only
DenoiseOption
The DenoiseOption registry setting specifies whether the codec will use the noise filter when encoding. The noise filter attempts to detect and remove noise from the video frames.
Some types of noise are easier than others for the codec to detect. Using this feature may result in lower video quality.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to 0 or 1. 0 indicates that the codec will not use the noise filter; 1 indicates that it will.
Supported Codec Versions
All
Dquant Option
The Dquant Option registry setting specifies when to use dquant perceptual optimization. Dquant is the difference in the quantizer between the previous macroblock and current macroblock. Using this optimization can produce better quality in smooth areas of the video picture, but increases the computation required to encode each frame.
If this optimization is activated, the strength of optimization is controlled by the Dquant Strength value.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Description |
---|---|
0 | Dquant perceptual optimization will not be used. |
1 | Only I frames will be optimized. |
2 | I and P frames will be optimized, but B frames will not. |
3 | I, P, and B frames will be optimized. |
Supported Codec Versions
32-bit WVC1 only
Dquant Strength
The Dquant Strength registry setting specifies the strength of the Dquant perceptual optimization that will be used. The stronger the optimization, the more CPU-intensive the encoding will be.
This value is used only if the Dquant Option value is set to 1, 2, or 3. The value of Dquant Option specifies the types of frames that will be optimized.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Description |
---|---|
0 | The codec will determine the strength of optimization. |
1 | Weak optimization. |
2 | Medium optimization. |
3 | Strong optimization. |
Supported Codec Versions
32-bit WVC1 only
Force B Frame Delta QP
The Force B Frame Delta QP registry setting specifies the delta increase between the picture quantizer of the anchor frame and the picture quantizer of the B frame.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to a value from 0 to 31.
Supported Codec Versions
32-bit WVC1 only
Force Encoding Height and Force Encoding Width
The Windows Media Format SDK and Windows Media Encoder enable you to specify an output frame size for a video stream. The output size is the frame size that is normally used in the encoded stream. You can use the Force Encoding Height and Force Encoding Width registry settings to specify a different frame size for the encoded bit stream. By using these settings, you can reduce the size of the encoded video stream. However, as with all resizing, the quality of the output image may be affected.
If the Force Encoding Height and Force Encoding Width registry settings are set, the codec will compress the video at the resolution they describe. When the video stream is decoded, the default output frame size is the size that was specified in the profile used during encoding. The codec will resize the frames from their intermediate size as needed.
Data Type
REG_DWORD
Valid Values
Both Force Encoding Height and Force Encoding Width take a value specifying the dimension of the video frame in pixels. The value specified must be less than the corresponding dimension of the input video frame. The minimum size is 32 and the maximum size is 8192. If you set either value to 0, the codec will ignore that value and use the corresponding source size.
The width must be a multiple of 32. Otherwise, the value will be rounded up to the nearest multiple of 32.
Supported Codec Versions
All
Force LoopFilter
The Force LoopFilter registry setting specifies whether the codec should use the in-loop deblocking filter during encoding.
When the codec uses the in-loop deblocking filter, the edges of the macroblocks in the output video frames will not be as noticeable. However, the filter makes the image softer in appearance.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to 0 or 1. 0 indicates that the codec will not use the loop filter; 1 indicates that it will.
Supported Codec Versions
All
Force Median
The Force Median registry setting specifies whether the codec should use median filtering during encoding. Median filtering can reduce the encoded size of the video stream, but can introduce compression artifacts. The artifacts associated with this filter can include motion trails behind moving objects in the image.
By default, the codec uses internal logic to determine whether median filtering should be used. If you add this setting to the registry, that logic will be overridden and the codec will always abide by the value in the registry setting.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to 0 or 1. 0 indicates that the codec will not use median filtering; 1 indicates that it will.
Supported Codec Versions
All
Force NoiseEdgeRemoval
The Force NoiseEdgeRemoval registry setting specifies whether the codec should attempt to detect noisy frame edges and remove them.
A noisy frame edge is usually the vertical blanking interval (VBI) data from a frame of broadcast television. The VBI is the first 21 scan lines of the television frame. These scan lines do not contain video data—they contain data about the broadcast. When a television signal is recorded by a capture card, the VBI is usually removed from the frame. The noisy edge detection and correction performed by the codec can only correct an edge that has three or fewer lines of noise. If captured video contains more than three noisy lines, there is a problem with the hardware used to capture the video.
If the codec is set to remove noisy edges, it duplicates lines adjacent to the noisy edge to fill in the frame.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to 0 or 1. 0 indicates that the codec will not remove edge noise; 1 indicates that it will.
Supported Codec Versions
All
Force NumThreads
The Force NumThreads registry setting specifies the number of threads that the codec will use for encoding. This value is intended to divide encoding into multiple threads to take advantage of computers with multiple processors.
Splitting encoding tasks into multiple threads can cause a slight decrease in quality as compared to a single thread.
Data Type
REG_DWORD
Valid Values
This registry setting should be set to 1, 2, or 4. Other values will be rounded down.
Supported Codec Versions
All
Force Range Reduction
The Force Range Reduction registry setting specifies the degree to which the codec should reduce the effective color range of the video. Reducing the color range reduces the encoded size of video frames but can introduce blurriness in the decoded frames.
Without this value set in the registry, the codec determines whether to use range reduction at encoding time. Typically this option is selected by the codec only at low bit rates.
Data Type
REG_DWORD
Valid Values
This registry setting is a combination of four values, separated by zeros, formatted as 0x0M0m0N0n, where:
-
M is the encoding range reduction factor for the Y component.
-
m is the decoding range expansion factor for the Y component (usually the same as M).
-
N is the encoding range reduction factor for the UV component.
-
n is the decoding range expansion factor for the UV component (usually the same as N).
Each factor is a digit from 0 to 8, where 0 is no reduction or expansion and 8 is the maximum reduction or expansion.
If you set the value to 0x00000000, range reduction is completely disabled.
If you set the value to 0xFFFFFFFF, the codec ignores the registry setting and uses its internal logic to determine whether range reduction should be used.
Supported Codec Versions
All
Force Overlap
The Force Overlap registry setting specifies whether the codec will use overlap smoothing when encoding.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to 0 or 1. 0 indicates that overlap smoothing will not be used, 1 indicates that it will.
Supported Codec Versions
32-bit WVC1 only
Force Video Scaling
The Force Video Scaling registry setting specifies whether the codec will use video scaling optimization. Video scaling is a type of perceptual optimization that can improve the visual quality of video encoded at low bit rates.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Description |
---|---|
0 | Video scaling will not be used. |
1 | The encoder will use conservative video scaling optimization. |
2 | The encoder will use aggressive video scaling optimization. |
Supported Codec Versions
32-bit WVC1 only
Lookahead
The Lookahead registry setting specifies the number of frames after the current frame that the codec will evaluate before encoding the current frame. When the codec uses lookahead, it can encode the video more efficiently.
The writer object of the Windows Media Format SDK expects the codec to encode each sample immediately. As a result, this feature does not work properly in software that uses the writer object (including Windows Media Encoder and Windows Media Player). Any data unit extensions associated with video frames will be attached to the wrong output frame. The number of frames by which the data unit extensions are misplaced is equal to the number of frames of lookahead that are used.
Data Type
REG_DWORD
Valid Values
This registry setting value is the number of frames of lookahead to use. It can be set to 0 to disable lookahead, or to any integer from 1 to 16 to enable that many frames of lookahead.
Supported Codec Versions
All
Macroblock Mode Cost Method
The Macroblock Mode Cost Method registry setting specifies the cost method used by the codec to determe which macroblock mode to use.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Method used |
---|---|
0 | SAD/Hadamard. This option configures the codec to use only distortion when computing cost. |
1 | RD cost. This option configures the codec to account for both rate and distortion when computing cost. |
Supported Codec Versions
32-bit WVC1 only
Motion Match Method
The Motion Match Method registry setting specifies the method to use for motion matching.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Method used |
---|---|
0 | SAD |
1 | Hadamard |
-1 | Macroblock-adaptive. This option configures the codec to make decisions about which method to use on each macroblock. This can potentially reduce overall computation required for encoding by performing the computationally-intensive Hadamard transform only when appropriate. |
Supported Codec Versions
32-bit WVC1 only
Motion Search Level
The Motion Search Level registry setting specifies the types of video information that are used in motion search operations.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Video information used |
---|---|
0 | Luma only. |
1 | Luma with nearest-integer chroma. |
2 | Luma with true chroma. |
-1 | Macroblock-adaptive with true chroma. |
-2 | Macroblock-adaptive with nearest-integer chroma. |
Supported Codec Versions
32-bit WVC1 only
Motion Search Range
The Motion Search Range registry setting specifies the range used in motion searches.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values. H denotes horizontal range and V denotes vertical range. All ranges are given in pixels.
Value | Range |
---|---|
0 | +63.75/-64.0 H, +31.75/-32.0 V |
1 | +127.75/-128.0 H, +63.75/-64.0 V |
2 | +511.75/-512.0 H, +127.75/-128.0 V |
3 | +1023.75/-1024.0 H, +255.75/-256.0 V |
-1 | Macroblock-adaptive |
Supported Codec Versions
32-bit WVC1 only
Motion Vector Coding Method
The Motion Vector Coding Method registry setting specifies the method used to code the motion vector information in field pictures.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Description |
---|---|
0 | Use encoder defaults. |
1 | Improves coding efficiency for highly spread-out horizontal delta motion vector distributions. |
2 | Improves coding efficiency for highly spread-out vertical delta motion vector distributions. |
3 | Improves coding efficiency for highly spread-out horizontal and vertical delta motion vector distributions. |
Supported Codec Versions
32-bit WVC1 only
Motion Vector Cost Method
The Motion Vector Cost Method registry setting specifies the method used to estimate the cost of motion vector coding. The cost is a measure of the amount of processing needed to encode the content. The codec uses the cost to determine which features will be used in encoding.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Description |
---|---|
0 | The encoder will use a static motion vector cost. All blocks and macroblocks use the same motion vector cost estimate. |
1 | The encoder will use a dynamic motion vector cost. The motion vector cost is varied between blocks to achieve optimal visual quality. |
Supported Codec Versions
32-bit WVC1 only
NumBFrames
The NumBFrames registry setting specifies the number of bidirectional predictive frames (B-frames) that the codec will use between other types of frames. As a default, the codec does not use B-frames. It uses only intraframes (I-frames), which are fully encoded frames, and predictive frames (P-frames), which are encoded as the differences from the previous frame. B-frames, like P-frames, are predictive and store the changes from other frames. B-frames are different from P-frames because they store both the differences from the previous frame and the differences from the following frame.
The primary advantage of using B-frames is that an error in a B-frame will not propagate to subsequent frames as an error in a P-frame will.
When you configure the codec to use B-frames, it will use the specified number of B-frames between each pair of frames of either of the other types. For example, if a sequence of frames without B-frames is IPPPPPPPPPPI, the same sequence using two B-frames might be IBBPBBPBBI. Note that the presence of B-frames can alter the number of delta frames (P-frames or B-frames) between I-frames. In the right circumstances, this could cause the configured key-frame distance to be exceeded by a few frames.
The writer object of the Windows Media® Format SDK expects the codec to encode each sample immediately. As a result, this feature does not work properly in software that uses the writer object (including Windows Media Encoder and Windows Media Player). Any data unit extensions associated with video frames will be attached to the wrong output frame. The number of frames by which the data unit extensions are misplaced is equal to the number of B-frames that are used.
Data Type
REG_DWORD
Valid Values
This value is the number of B-frames to use between other types of frames. It can range from 0 to 7, with 0 indicating that B-frames will not be used.
Supported Codec Versions
All
Perceptual Option
The Perceptual Option registry setting specifies whether the codec should use conservative perceptual optimization when encoding. Conservative perceptual optimization is a process by which the codec attempts to identify «important» and «unimportant» regions in the video frame. After identifying the regions of the frame, the codec will give a higher priority to the quality of important regions, at the expense of the quality of unimportant regions.
The results of this feature will vary considerably depending on the types of video being encoded.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to 0 or 1. 0 indicates that the codec will not use conservative perceptual optimization; 1 indicates that it will.
Supported Codec Versions
All
Video Type
The Video Type registry setting specifies the logic that the codec will use to detect interlaced source video.
Data Type
REG_DWORD
Valid Values
This registry setting must be set to one of the following values.
Value | Description |
---|---|
0 | The codec will use the standard frame-type detection logic. |
1 | The codec will treat all source video frames as interlaced frames. |
2 | The codec will treat all source video frames as fields of interlaced video. |
3 | The codec will automatically determine whether input video frames are interlaced frames or fields of interlaced video. |
4 | The codec will automatically determine whether input video frames are progressive frames, interlaced frames, or fields of interlaced video. |
Supported Codec Versions
32-bit WVC1 only
Back to Top
The Society of Motion Picture and Television Engineers (SMPTE) has established a new video codec specification called VC-1. This specification was proposed by Microsoft and is based on the technology developed for the Windows Media Video codecs. The VC-1 standard is published in SMPTE 421M-2006, «VC-1 Compressed Video Bitstream Format and Decoding Process.» VC-1 has three distinct modes of operation, or profiles, that each support different features: simple profile, main profile, and advanced profile.
The Windows Media Video 9 codec is Microsoft’s implementation of both the simple profile and the main profile of VC-1. The Windows Media Video 9 Advanced Profile codec is Microsoft’s implementation of the advanced profile of VC-1. The new 32-bit version of the codec that uses the FOURCC «WVC1» is fully compliant with the SMPTE standard.
Back to Top
For More Information
-
For general information about Windows Media technologies, see the Windows Media Web page (http://www.microsoft.com/windows/windowsmedia/).
-
For information about Windows Media Encoder, see Windows Media Encoder 9 Series (http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx).
-
For information about the SMTPE VC-1 standard, see the SMPTE Web site (http://www.smpte.org)
Back to Top
Windows Media Video (WMV) is a series of video codecs and their corresponding video coding formats developed by Microsoft. It is part of the Windows Media framework. WMV consists of three distinct codecs: the original video compression technology, known as WMV, originally designed for Internet streaming applications as a competitor to RealVideo, and WMV Screen and WMV Image compression technologies, which cater to specialized content. After standardization by the Society of Motion Picture and Television Engineers (SMPTE),[1][2] WMV version 9 was adapted for physical-delivery formats such as HD DVD and Blu-ray Disc and became known as VC-1.[3][4] Microsoft also developed a digital container format called Advanced Systems Format to store video encoded by Windows Media Video.
In 2003, Microsoft drafted a video compression specification based on its WMV 9 format and submitted it to SMPTE for standardization. The standard was officially approved in March 2006 as SMPTE 421M, better known as VC-1, thus making the WMV 9 format an open standard. VC-1 became one of the three video formats for the Blu-ray video disc, along with H.262/MPEG-2 Part 2 and H.264/MPEG-4 AVC.[3][4]
A WMV file uses the Advanced Systems Format (ASF) container format to encapsulate the encoded multimedia content. While the ASF can encapsulate multimedia in other encodings than those the WMV file standard specifies, those ASF files should use the .asf file extension and not the .wmv file extension.[5][failed verification]
The ASF container can optionally support digital rights management using a combination of elliptic curve cryptography key exchange, DES block cipher, a custom block cipher, RC4 stream cipher and the SHA-1 hashing function.
Although WMV is generally packed into the ASF container format, it can also be put into the Matroska[6] container format (with file extension .mkv), or AVI container format (extension .avi). One common way to store WMV in an AVI file is to use the WMV 9 Video Compression Manager (VCM) codec implementation.[7][8]
Video compression formats
edit
Windows Media Video (WMV) is the most recognized video compression format within the WMV family. Usage of the term WMV often refers to the Microsoft Windows Media Video format only. Its main competitors are MPEG-4 AVC, AVS, RealVideo, and MPEG-4 ASP. The first version of the format, WMV 7, was introduced in 1999, and was built upon Microsoft’s implementation of MPEG-4 Part 2.[9] Continued proprietary development led to newer versions of the format, but the bit stream syntax was not frozen until WMV 9.[10] While all versions of WMV support variable bit rate, average bit rate, and constant bit rate, WMV 9 introduced several important features including native support for interlaced video, non-square pixels, and frame interpolation.[11] WMV 9 also introduced a new profile titled Windows Media Video 9 Professional,[12] which is activated automatically whenever the video resolution exceeds 300,000 pixels (e.g., 528 px × 576 px, 640 px × 480 px or 768 px × 432 px and beyond) and the bitrate 1 Mbit/s[citation needed]. It is targeted towards high-definition video content, at resolutions such as 720p and 1080p.
The Simple and Main profile levels in WMV 9 are compliant with the same profile levels in the VC-1 specification.[13] The Advanced Profile in VC-1 is implemented in a new WMV format called Windows Media Video 9 Advanced Profile. It improves compression efficiency for interlaced content and is made transport-independent, making it able to be encapsulated in an MPEG transport stream or RTP packet format. The format is not compatible with previous WMV 9 formats, however.[14]
WMV is a mandatory video format for PlaysForSure-certified online stores and devices, as well as Portable Media Center devices. The Microsoft Zune, Xbox 360, Windows Mobile-powered devices with Windows Media Player, as well as many uncertified devices, support the format.[15] WMV HD mandates the use of WMV 9 for its certification program, at quality levels specified by Microsoft.[16] WMV used to be the only supported video format for the Microsoft Silverlight platform, but the H.264 format is now also supported starting with version 3.[17]
Windows Media Video Screen
edit
Windows Media Video Screen (WMV Screen) are video formats that specialise in screencast content. They can capture live screen content, or convert video from third-party screen-capture programs into WMV 9 Screen files. They work best when the source material is mainly static and contains a small color palette.[18]
One of the uses for the format is computer step-by-step demonstration videos. The first version of the format was WMV 7 Screen. The second version, WMV 9 Screen, supports VBR encoding in addition to CBR.[18] Additionally there is MSA1 (aka “MS ATC Screen codec” or “MSS3”) which is used in Live Meeting 2007. FourCCs for the formats are MSS1
, MSS2
and MSA1
.[19]
Windows Media Video Image
edit
Windows Media Video Image (WMV Image) is a video slideshow format. The format works by applying timing, panning and transition effects to a series of images during playback.[20] The codec achieves a higher compression ratio and image quality than WMV 9 for still images as files encoded with WMV Image store static images rather than full-motion video.
Since the format relies on the decoder (player) to generate video frames in real-time, playing WMV Image files even at moderate resolutions (e.g. 30 frames per second at 1024 px × 768 px resolution) requires heavy computer processing. The latest version of the format, WMV 9.1 Image, used by Photo Story 3, features additional transformation effects, but is not compatible with the original WMV 9 Image format.[20]
Hardware support for WMV Image is available from Portable Media Centers, Windows Mobile-powered devices with Windows Media Player 10 Mobile.[15]
Since no known domestic DVD player supports this format, users of Photo Story 3 wishing to generate material capable of being played in a DVD player will first have to convert to MPEG-2 before burning a DVD (average file sizes in MPEG-2 are 5 to 6 times the .wmv file).
Public Name | FourCC | Description |
---|---|---|
Microsoft MPEG-4 version 1 | MPG4 | Video for Windows-based codec. Non-standard MPEG-4 codec incompatible with the later standardized version of MPEG-4 Part 2. |
Microsoft MPEG-4 version 2 | MP42 | VfW-based codec. Non-compliant with finalized MPEG-4 part 2 standard. |
Microsoft MPEG-4 version 3 | MP43 | VfW-based codec. Non-compliant with finalized MPEG-4 part 2 standard. Eventually locked for encoding only with ASF files (build 3688 and earlier could also encode to AVI).[21] |
Microsoft ISO MPEG-4 version 1 | MP4S | DirectX Media Objects (DMO)-based codec. MPEG-4 Simple Profile compliant. |
Microsoft ISO MPEG-4 version 1.1 | M4S2 | MPEG-4 Advanced Simple Profile compliant.[22] |
Windows Media Video 7 | WMV1 | DMO-based codec. |
Windows Media Screen 7 | MSS1 | DMO-based codec. Optimized for low-bitrate sequential screen captures or screencasts. Deprecated in favor of Windows Media 9 Screen codec. |
Windows Media Video 8 | WMV2 | DMO-based codec. |
Windows Media Video 9 | WMV3 | DMO-based codec. Video for Windows (VfW/VCM) version also available. [1] |
Windows Media Video 9 Screen | MSS2 | DMO-based codec. Optimized for low-bitrate sequential screen captures or screencasts. |
Windows Media Video 9.1 Image | WMVP | DMO-based codec. Optimized for encoding video from sequential bitmap images. Used, for instance, by Photo Story. |
Windows Media Video 9.1 Image V2 | WVP2 | DMO-based codec. Optimized for encoding video from sequential bitmap images. Used, for instance, by Photo Story. |
Windows Media Video 9 Advanced Profile | WMVA | DMO-based codec. Deprecated as non-VC-1-compliant. |
Windows Media Video 9 Advanced Profile | WVC1 | DMO-based codec. VC-1 compliant format. |
Audio compression formats
edit
The audio format used in conjunction with Windows Media Video is typically some version of Windows Media Audio, or in rarer cases, the deprecated Sipro ACELP.net audio format. Microsoft recommends that ASF files containing non-Windows Media formats use the generic .ASF file extension.
Software that can play WMV files includes Windows Media Player, RealPlayer, MPlayer, Media Player Classic, VLC Media Player and K-Multimedia Player. The Microsoft Zune media management software supports the WMV format, but uses a Zune-specific variation of Windows Media DRM which is used by PlaysForSure. Many third-party players exist for various platforms such as Linux that use the FFmpeg implementation of the WMV format.
On the Macintosh platform, Microsoft released a PowerPC version of Windows Media Player for Mac OS X in 2003,[23] but further development of the software ceased. From January 2006 to May 2014, Microsoft endorsed and distributed the 3rd party Flip4Mac, a QuickTime Component developed by Telestream that allowed Macintosh users to play WMV files in any player that used the QuickTime framework.[24][25] Telestream ended sales of Flip4Mac on 1 July 2019 and officially ended support on 28 June 2020.[26] The Elmedia player, which can play WMV files on Macintosh computers, is still available.
Many programs can export video in WMV format; a few examples are Windows Movie Maker, Windows Media Encoder, Microsoft Expression Encoder, Sorenson Squeeze,[27] Vegas Pro,[28] AVS Video Editor, VSDC Free Video Editor, Telestream Episode, Telestream FlipFactory,[29][30] and FFmpeg.
Programs that encode using the WMV Image format include Windows Media Encoder, AVS Video Editor, and Photo Story.
Digital rights management
edit
While none of the WMV formats themselves contain any digital rights management facilities, the ASF container format, in which a WMV stream may be encapsulated, can. Windows Media DRM, which can be used in conjunction with WMV, supports time-limited subscription video services such as those offered by CinemaNow.[31] Windows Media DRM, a component of PlaysForSure and Windows Media Connect, is supported on many modern portable video devices and streaming media clients such as the Xbox 360.
WMV has been the subject of numerous complaints from users and the press. Users dislike the digital rights management system which is sometimes attached to WMV files.[32] In 2007, the loss of the ability to restore licenses for WMV files in the Windows Media Player 11 was not positively received.[32]
- JPEG XR/HDHD, an image file format and format developed by Microsoft
- ^ «SMPTE VC-1 Receiving Industrywide Support». microsoft.com. Archived from the original on 9 August 2007. Retrieved 3 May 2018.
- ^ «Microsoft VC-1 Codec Now a Standard». www.betanews.com. 3 April 2006. Archived from the original on 24 February 2009. Retrieved 3 May 2018.
- ^ a b «Blu-ray Disc BD-ROM Specification Adds Microsoft’s VC-1 Advanced Video Codec». microsoft.com. Archived from the original on 15 June 2007. Retrieved 3 May 2018.
- ^ a b «Microsoft Technology Brings HD DVD to the Mainstream». microsoft.com. Archived from the original on 9 August 2007. Retrieved 3 May 2018.
- ^ «The Difference Between ASF and WMV/WMA Files». November 17, 2003. Archived from the original on 2007-08-19.
- ^ «Archives | Matroska». 2003-06-19. Archived from the original on 2011-10-11. Retrieved 2011-10-12.
As a sidenote, his muxer filter will also allow transmuxing of Microsoft WMV9 video files ( ASF/WMV container ) fine into matroska files, from Graphedit, and with WMV9 VCM installed on your PC you can even open and edit the files in latest VirtualdubMod
- ^ Microsoft Corporation (2003-07-07) Windows Media Video 9 VCM Archived 2009-08-10 at the Wayback Machine, Retrieved on 2009-08-07
- ^ «Windows — Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more». www.microsoft.com. Archived from the original on 1 November 2017. Retrieved 3 May 2018.
- ^ «News, Features, Reviews, Forums and Resources for the Professional Content Creator — Creative Planet Network». Creative Planet Network. Archived from the original on 22 February 2009. Retrieved 3 May 2018.
- ^ «Windows Media Audio & Video 9 Series». microsoft.com. Archived from the original on 28 September 2007. Retrieved 3 May 2018.
- ^ «Windows — Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more». www.microsoft.com. Archived from the original on 21 August 2010. Retrieved 3 May 2018.
- ^ «Windows Media 9 Series Beta Reviewer’s Guide» (PDF). Archived from the original (PDF) on September 28, 2007.
- ^ «Using the Advanced Settings of the Windows Media Video 9 Advanced Profile Codec». Microsoft. Archived from the original on August 11, 2007.
- ^ Waggoner, Ben (21 February 2007). «Best Practices for Windows Media Encoding». Streaming Media Magazine. Archived from the original on 26 July 2011. Retrieved 3 May 2018.
- ^ a b «Windows — Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more». www.microsoft.com. Archived from the original on 14 September 2007. Retrieved 3 May 2018.
- ^ «MSN — Outlook, Office, Skype, Bing, Breaking News, and Latest Videos». go.microsoft.com. Archived from the original on October 20, 2005. Retrieved 3 May 2018.
- ^ «Microsoft Silverlight Developer Server Audio Video Streaming FAQ». microsoft.com. Archived from the original on 4 September 2007. Retrieved 3 May 2018.
- ^ a b «Windows — Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more». www.microsoft.com. Archived from the original on 1 November 2017. Retrieved 3 May 2018.
- ^ «Microsoft Screen Codec — MultimediaWiki». wiki.multimedia.cx. Archived from the original on 15 May 2013. Retrieved 3 May 2018.
- ^ a b «Windows — Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more». www.microsoft.com. Archived from the original on 1 November 2017. Retrieved 3 May 2018.
- ^ VirtualDub VirtualDub documentation: codecs Archived 2011-05-16 at the Wayback Machine, Retrieved on 2009-11-28
- ^ MPEG4 Part 2 Video Decoder MSDN documentation: Profiles and Levels Archived 2013-12-03 at the Wayback Machine, Retrieved on 2009-11-28
- ^ «Office 365 for Mac, Office 2016 for Mac». office.com. Archived from the original on 3 May 2018. Retrieved 3 May 2018.
- ^ «Telestream Press Release». telestream.net. Archived from the original on 10 September 2006. Retrieved 10 September 2006.
- ^ «Knowledge Article: Flip4Mac Player: Why is Telestream charging for Flip4Mac Player». Archived from the original on 22 August 2021. Retrieved 22 August 2021.
- ^ «Knowledge Article: Flip4Mac retired as of July 1, 2019». Archived from the original on 22 August 2021. Retrieved 22 August 2021.
- ^ «Sorenson Media — Next Generation Television Starts Here». Sorenson Media. Archived from the original on 23 March 2018. Retrieved 3 May 2018.
- ^ «Sony Creative Software — Vegas Pro 8 — Technical Specifications». sonycreativesoftware.com. Archived from the original on 2 March 2008. Retrieved 3 May 2018.
- ^ «Supported file formats in Adobe Premiere Pro 2.0». adobe.com. Archived from the original on 13 October 2007. Retrieved 3 May 2018.
- ^ «EMS — PLAYOUT — CG — MAM — INGEST — ENCODER — IP MULTIVIEWER». www.easymediasuite.com. Archived from the original on 30 September 2017. Retrieved 3 May 2018.
- ^ «Windows — Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more». www.playsforsure.com. Archived from the original on 22 August 2007. Retrieved 3 May 2018.
- ^ a b «Microsoft Media Player shreds your rights». theinquirer.net. Archived from the original on 7 September 2007. Retrieved 3 May 2018.
- Description of the algorithm used for Windows Media encryption Archived 2013-02-10 at the Wayback Machine
- Demonstration of WMV 9 delivering 720p video at 1.8 Mbit/s ABR Archived 2010-03-22 at the Wayback Machine
- Demonstration of WMV 9 delivering 1080p video at 10 Mbit/s ABR
- History of Windows Media Player (archived 2009)
With a little help from guides it is possible to create very good video from several common sources.
Encode speed for single pass WMV 9 is comparable to TMpeg on Motion Estimate Search for MPEG2 at same resolution input/output and no resizing or filters.
Encode speed for 2 pass is longer (5-6x original movie time on my Athlon 1.33 GHz). However, when compared to TMpeg using resizing and SOME filters, WMV 9 encodes much faster than TMpeg doing MPEG2.
I’ve observed WMV file sizes 30-50% smaller than MPEG2 at comparable bitrates.
Visual quality of the video is noticeably better than MPEG2, even when using filters and highest quality in TMpeg.
On the downside, if you are familiar with MPEG2 encoding, there is a little bit of a learning curve to go into WMV9, but not too much.
On the downside, WMV 9 encoder defaults to a fairly SOFT image quality. Change this to sharp or sharper settings (75-85 or better) to get better image quality.
One preferential note: not as many processing controls as TMpeg, but these can be done using other apps like VirtualDub, TMpeg etc, prior to encoding. Besides, some people prefer this anyway.
Review by danscudder on
Mar 14, 2005 Version: 9
OS: WinXP Ease of use: 8/10
Functionality: 8/10
Value for money: 10/10
Overall: 9/10
Editor’s note: This VC-1 FAQ was last updated in 2014, and most of the information in it reflects the state of Microsoft video compression technology around 2006-2010. Though its content is likely no longer relevant I have decided to keep the page alive for archival purposes.
Q: Where can I get the latest and greatest WMV9 (Microsoft Windows Media VC-1) codec?
A: All versions of Windows since Windows Vista (except “N” European versions) and Windows Server since 2008 include the latest WMV9/VC-1 encoder and decoder DMOs. The Vista encoder DMO is the same as the one that ships in WMP11 for XP. To enable Windows Media codecs in Windows Server you must enable the Desktop Experience feature.
Q: What is VC-1? What is WMV9? What’s the difference?
A: VC-1 is a codec specification as standardized by SMPTE in 421M. WMV9 is an implementation of that specification. Think of it this way: WMV9 is to VC-1 what x264 is to MPEG-4 AVC or DivX is to MPEG-4 ASP. In the context of Microsoft video codecs, WMV9 and VC-1 can be considered one and the same. A fine line can be drawn by saying that WMV9 is VC-1 video in the context of Windows Media: inside an ASF container, or with WMA audio, or with WM DRM, or streaming from WM Servers, etc.
Q: So what’s the big deal with Advanced Profile? Is it a new codec?
A: In some ways it is a new codec… in others, it’s just an extension of the classic WMV9 codec. The SMPTE 421M standard for video compression (nicknamed “VC-1”) was originally based on Microsoft’s Windows Media Video 9 codec. However, a number of changes and improvements were made to the specification as a part of the SMPTE standardization. Three profiles were defined for VC-1: Simple, Main and Advanced Profile. The existing implementation of WMV9 (FourCC: WMV3) already covered Simple and Main profiles so Microsoft only had to add the remaining third profile. Advanced Profile includes new features such as true interlaced encoding support, transport independent bitstreams, resolutions up to 2048×1536 and bitrates up to 135Mbps.
Q: But wait! Didn’t WMP10 ship with a WMV Advanced Profile codec years ago?
A: Indeed it did. Microsoft began working on its implementation of WMV AP before VC-1 spec was finalized. That codec (FourCC: WMVA) shipped with WMP10 (Format SDK 9.5), but as final changes to the VC-1 spec were made, WMVA got out of sync with the official spec. Today WMVA is no longer VC-1 compliant and is generally considered deprecated. If you have any content encoded with WMVA, you should re-encode it to WVC1 at your earliest convenience.
Q: Does the new Advanced Profile codec have a different FourCC?
A: Yes, it does. In order to differentiate it from SP/MP codec (FourCC: WMV3) and the non-VC1-compliant AP codec (FourCC: WMVA) and avoid issues with legacy decoders, the VC-1 compliant WMV9 Advanced Profile codec uses a new FourCC code: WVC1.
Q: Will switching to WMV9 AP improve the quality of my encodings? Should I stop encoding to Main Profile?
A: Just switching from Main Profile to Advanced Profile is not enough to increase quality. Quality is subject to encoder efficiency, not profile level. The differences between profiles – in any codec – are in the feature set and decoder complexity. It is implied that AP content is more difficult to decode than MP content – that’s the whole point of having profiles and levels.
Q: So what’s the advantage of Advanced over Main Profile?
A: Take a look the feature tables at http://en.wikipedia.org/wiki/VC-1 and the one below. AP’s most important features are:
- Interlaced encoding support (both frame and field modes)
- Bitstream encapsulated metadata that allows VC-1 to be placed in almost any file container or transported over any protocol
- Differential quantization which allows macroblocks within a picture to be coded with different quantizers
- Encoding at resolutions different than decode resolutions
For most part, none of that really affects quality if you’re encoding progressive content. Microsoft’s latest version of the WMV9 (WMV3/WVC1) encoder is v11, now available for download with the v11 Player and WMF SDK. If you use this encoder to encode to either Main Profile or Advanced Profile, you ought to be able to get roughly the same quality for both because most of the quality-related optimizations (i.e. B-frames, inloop filtering, ratecontrol, motion estimation, etc.) apply to both MP and AP.
When deciding whether to encode to Main or Advanced profile, you should primarily consider your target playback platform (PC? Xbox? Zune? PocketPC?) and your source (progressive? interlaced? mixed?).
Q: OK, I got the codec. How do I encode with it?
A: All Windows Media codecs are implemented as DirectX Media Objects (DMO) and/or Media Foundation Transforms (MFT). Encoding applications that use DMO/MFT codecs:
- Windows Media Encoder 9 Series – This Microsoft encoder supports nearly every scenario imaginable: offline encoding, live capture & encode, streaming over networks, washing your dishes… It’s all there. The bad news: it’s no longer a supported product so you might have to do some research to find it online. To encode to WVC1, simply create a Custom Session, go to Properties, Compression tab, hit Edit – and select “WMV9 Advanced Profile” from the video codec list. WME9 also supports command-line encoding via the WMCmd.vbs script.
- Many video editing applications such as Sony Vegas, Adobe Premiere and Avid Xpress support exporting to WMV9.
- WMV Muxer/Encoder by DVBPortal – A simple WMV muxer and encoder useful for muxing VC-1 streams into ASF without recompressing. Encoder feature requires .prx profiles which can be customized using the WM Profile Editor from the WME9 package.
- WMNicEnc – Nic’s WMV encoder takes Avisynth input only and supports all the advanced encoding settings of VC-1. Small, easy and effective.
For most part DMO/MFT-based VC-1 encoding applications have been superseded by applications based on the VC-1 Encoder SDK and Smooth Streaming Encoder SDK which don’t rely on any native Windows codecs for support. These products have the VC-1 encoder “baked in.” Examples of these include:
- Microsoft Expression Encoder – Microsoft’s official replacement for the outdated WME9, this application supports VC-1 encoding to both Windows Media and Smooth Streaming formats even in its free version. The retail version adds support for Live Smooth Streaming and H.264/AAC codecs. The product comes with a .NET SDK which enables easy automation and remote operation.
- Professional video encoding products by partners such as Cisco/Inlet, Telestream/Anystream, Digital Rapids, Harmonic/Rhozet, Envivio, Winnov, etc.
Q: How do I configure the advanced settings of WMV9 AP? I don’t see any UI in WME9 to do this!
A: The advanced settings of the WMV9 Advanced Profile codec are available through the standard Windows Media Codec APIs, but are also enabled through registry settings. The registry settings are made available in order to allow legacy encoder applications (such as Windows Media Encoder 9) which are unaware of the new API properties to take advantage of the new settings. Windows Media Encoder has not been updated since Windows Media 9 Series and therefore does not have any user interface elements for the new codec. Yeah, it’s not the greatest and user friendliest interface, but it’s actually how most codecs store their long term settings. Fortunately, there are alternatives:
- WMV9 PowerToy – a tool for configuring all the advanced settings of WMV9 encoder and decoder
- WMCmd.vbs – All you command-line fans can rejoice because the updated wmcmd.vbs supports all the advanced settings via command-line now
- Nic’s WMV Encoder – Nic’s updated encoder now features an Advanced Options pane for configuring all the, well, advanced options
Q: I am trying to use WME9 on Vista and I’m experiencing crashes in cscript.exe and wmenc.exe. What can I do?
A: These are known issues. Microsoft has released a hotfix that addresses the problems.
Q: Cscript.exe fails to initialize the WMEncoder object when I try to use WMCmd.vbs with 32-bit WME9 on XP/Vista x64. Is WMCmd.vbs encoding broken in this scenario?
A: Not at all. The default script interpreter on Windows x64 is 64-bit cscript.exe. WME9 x86 installs 32-bit COM objects (used by WMCmd.vbs). In order to run WMCmd.vbs, you need to use the 32-bit cscript.exe located in \Windows\SysWOW64 or simply run the 32-bit cmd.exe command-prompt which will ensure the 32-bit version of cscript.exe gets invoked.
Q: Should I use the 32-bit or 64-bit version of Windows Media Encoder 9?
A: 64-bit WMV codecs don’t really offer much of a performance improvement (if any at all) over 32-bit WMV codecs. The important thing to keep in mind is that if you want to use WME9 x64 for transcoding, your source decoders will need to be 64-bit too. So unless you’ve got 64-bit versions of XviD, MPEG-2, H.264 and whatever other decoders you want to use – it’s probably not worth the hassle.
In general I would use WME9 x64 only for Server 2003 x64 where WMV9 AP “WVC1” codec is not officially available at all, and maybe for Vista/Win7 x64 where all codecs are available in both 32-bit and 64-bit versions – so you might as well try both. On XP x64 – you should stick with 32-bit WME9.
Q: WME9 gives me an error when I try to use Avisynth script as source. Does WME9 not support .avs input?
A: It does – sort of. WME9 was developed years ago when Avisynth wasn’t very widely used so the WME9 team never considered explicitly adding Avisynth support. However, due to Avisynth’s similarity to the AVI interface, it’s possible to force WME9 to read Avisynth scripts anyway:
- GUI: Use a custom session and in Properties’ Sources tab select “Both device and file” for source, then choose “Browse for file” for video and/or audio and point to your .avs script.
- WMCmd.vbs: The original command-line encoder script that shipped with WME9 didn’t support .avs inputs, but independent efforts have been made since then to update the script and work around the limitation.
Q: Do these registry settings apply only to Advanced Profile (WVC1)?
A: Depends on which codec version you are using. If you are using WMP11/WMFSDK11 (XP or Vista), the registry settings will affect all 3 profiles – Simple, Main (WMV3) and Advanced (WVC1). However, not all registry settings are valid in every profile. Here is how they map out:
Q: Where can I find out more about VC-1 and WMV9?
A: Check out these links:
- VC-1 Introduction
- VC-1 Technical Overview
- VC-1 Article on Wikipedia
- Using the Advanced Settings of the WMV9 Codec
Материал из РУВИКИ — свободной энциклопедии
VC-1 (он же WMV9) — стандарт видеокодека, изначально разработанного Microsoft[прояснить]; часто рассматривается как альтернатива кодеку H.264. Был выпущен 3 апреля 2006 года. На данный момент — поддерживаемый стандарт для HD-DVD и Blu-Ray.
Одно из достоинств стандарта — поддержка работы с чересстрочной разверткой без преобразования в прогрессивную, что должно быть потенциально привлекательно для использования его в широковещательных сетях[1].
VC-1 является официальным кодеком для игровой приставки Xbox 360 от самой Microsoft.
FFmpeg включает в себя бесплатную версию декодера VC-1[2].
Спецификация VC-1 включает в себя три кодека, имеющих различные коды FourCC.
WMV3[править | править код]
Windows Media Video 9 (WMV3), разработанный до введения VC-1, соответствует профилям Simple и Main VC-1, что делает видеопотоки WMV3 полностью совместимыми с VC-1. При кодировании видео с прогрессивной и чересстрочной разверткой используются разные цветовые пространства — YUV 4.2.0, и менее распространенный YUV 4.1.1 соответственно. Кодек поддерживает сжатие с переменным битрейтом.
Были выпущены фильмы в высоком разрешении в формате, получившим название WMV HD, который является WMV3 Main Profile @ High Level.
WMVA[править | править код]
По сути, WMVA является предшественником WVC1 и соответствует профилю Advanced для кодирования с высокими битрейтами. Он был выпущен вместе с Windows Media Player 10 и Windows Media Format SDK 9.5. Существуют некоторые различия между WMVA и WVC1, в результате чего они перехватываются разными декодерами.
WVC1[править | править код]
В рамках VC-1 профиль Advanced подразумевает использование именно WVC1. Этот декодер поставляется вместе с Windows Media Player 11.
|
[1] |
- ↑ 1 2 VC-1 Technical Overview. Microsoft Corporation (2006). Дата обращения: 5 октября 2006. Архивировано 15 марта 2012 года.
- ↑ VC-1 — Google Summer of Code. Дата обращения: 22 ноября 2010. Архивировано 15 марта 2012 года.