On Channel 9 with Steven and Adam, talking inauguration

Once I’ve answered the same question in three different emails, I figure it’s time to blog it. By that metric, I should have blogged this about 17 times over by now!
Yes, the big picture: VC-1 is the SMPTE standardized version (SMPTE 421M) of Windows Media Video 9. The output of of a VC-1 encoder is bitstream compatible with a Windows Media Video 9 decoder that supports the profile, level, and features used.
Note that the VC-1 spec just defines the video bitstream; it doesn’t cover the ASF (used in .wmv and .wma) file format or any WMA codec. VC-1 Advanced Profile can live in a variety of other file format wrappers, including MPEG-4 (standard or fragmented, the latter being used in Smooth Streaming) and MPEG-2 transport stream (as used on Blu-ray or IPTV). Only VC-1 Advanced Profile has this kind of format independence; VC-1 Simple and Main profiles are always found inside a WMV file.
Yes, absolutely. VC-1 Main Profile is identical to the old Windows Media Video 9. A Windows Media file you make using VC-1 Simple and Main will work perfectly in WMP 9 out of the box. A stock XP Service Pack 2 machine that hasn’t been updated in years would play it without issue.
No, everyone with Windows Media Player 9 or higher can play VC-1 Main Profile already. Windows Media Player 11 can play Advanced Profile as well. Users or WMP 9 or 10 will be prompted to install a VC-1 Advanced Profile decoder if they try to play a WMV file using that.
So, Since Windows Media Video 9 Advanced Profile is the same as VC-1 Advanced Profile, and VC-1 AP is supported on Blu-ray, can you encode a Blu-ray compatible stream in Windows Media Encoder?
Nope, sorry. There are further constraints for Blu-ray VC-1 that need to be followed, and WME and the Windows Media Format SDK weren’t designed to support that level of constraint. The VC-1 Encoder SDK was designed with optical discs in mind, and can produce a Blu-ray compatible VC-1 elementary stream with products that expose it. Expression Encoder 2 doesn’t do elementary streams, but Rhozet’s Carbon Coder 3.12 and higher do.
Here’s the details.
VC-1 Profile | Windows Media codec | WME Decoder Complexity | Four Character Code (4CC) | Introduced with… | Downlevel to… |
VC-1 Simple Profile | Windows Media Video 9 | Simple | WMV3 | WMP 9 | WMP 6.4 |
VC-1 Main Profile | Windows Media Video 9 | Main | WMV3 | WMP 9 | WMP 6.4 |
Windows Media Video 9 | Complex | WMV3 | WMP 9 | WMP 6.4 | |
Windows Media Video 9 Advanced Profile | WMVA | WMP 10 | WMP 9 | ||
VC-1 Advanced Profile | Windows Media Video 9 Advanced Profile | WVC1 | WMP 11 | WMP 9 |
Following up on the above, there’s a couple of points I’d like to make clear
This is where Simple/Main/Complex profiles are set in Windows Media Encoder:
All that said, there is one last practical difference between WMV 9 and VC-1: Encoders that call it VC-1 are normally based on the newer, faster, higher quality, more flexible VC-1 Encoder SDK. This isn’t about a change in the codec standard, just the usual improvement of encoder implementations over time, like we saw with the Format SDK 9, 9,5, and 11 releases, and will be seeing again in future releases.
Here’s a comparison of the gains from the initial release (1st generation) to VC-1 Encoder SDK (4th generation).