Microsoft Silverlight is like the proverbial elephant; your impression depends upon where you touch it. In this article, I’ll touch it at the Expression Encoder, which is the encoding component of Expression Studio. Specifically, this article describes how to produce a Silverlight-compatible "media experience" with Expression Encoder, then upload it to the Silverlight Streaming Server, a streaming service offered by Microsoft, and to your own website. In this article I will focus on on-demand encoding, not live video encoding.
From my perspective, Silverlight poses two main questions. The first question is whether to adopt Silverlight as a design and development architecture, particularly over Flash, and I’m not going there. The other question has a very easy answer: If you’re already producing Windows Media files, should you switch to Silverlight?
There are some absolute bars to Silverlight. It currently doesn’t perform multicasting as robustly as Windows Media, it doesn’t offer server-side playlists or multiple bitrate files, and it doesn’t support the Windows Media 9 screen capture codec. In addition, Silverlight uses the same audio and video codecs as the current Windows Media Encoder, so you shouldn’t expect any increase in audio/visual quality.
So, why bother with Silverlight? For casual Windows Media producers, Silverlight lets you easily create a custom player for your video that integrates more neatly into your webpages. It also allows Macintosh viewers to play Windows Media video files more easily, and this should soon extend to Linux.
Even if you don’t make the switch to Silverlight, there are several valid reasons for Windows Media producers to consider Expression Encoder. For example, Expression Encoder can import QuickTime files, which is great if you’re producing in Compressor, After Effects, or Premiere Pro on the Mac. The Expression Encoder can batch encode multiple files, and it is compatible with compression acceleration co-processors from Tarari.
As we’ll see, the A/B comparison tool for assessing compressed quality is very robust, and the Expression Encoder has deinterlacing that actually works. Overall, it’s a lot more straightforward than the Windows Media Encoder, which is dowdy and has a frustratingly roundabout workflow.
But as we mentioned, the Expression Encoder does not produce multiple bitrate files. Even more surprising, it doesn’t support the advanced encoding options made available in the Windows Media Format SDK 11. Sure, the Expression Encoder supports command line encoding that implements those options, and it will respond to registry key changes invoked via the WMV9 PowerToy discussed here. However, given that this is the first major encoding tool release after the SDK 11 release, I would have expected Microsoft to drink its own Kool-Aid and support the advanced parameters directly.
What You’ll Need
Here I’m reviewing the 1.0.2905 version of the Expression Encoder. Note that Microsoft still had previous beta versions and updates to those betas on its website when I wrote this article (though, reportedly, they were soon to be removed), so it’s easy to download and even update the wrong application (not that I did, of course). You don’t want the Expression Media Encoder; the name has been shortened to Expression Encoder. You’ll know you have the wrong product if your interlaced source video doesn’t get deinterlaced during encoding.
If you’d like to customize your player templates, you’ll need Expression Blend 2, not the version of Expression Blend that ships with the initial version of Expression Studio, making it easy to start using the wrong application (not that I did, of course). You’ll know you have the wrong version if you get an error message when attempting to import the project file produced by Expression Encoder.
To view the files you produce, you’ll need the Silverlight plug-in, which worked well for me on both Mac (Safari and Firefox) and Windows. Your browser should tell you that you need the plug-in. It’s about 1.8MB for Windows, but it's 4.6MB for the Mac because that contains both PowerPC and Intel players.
With all of this as background, let’s dive in.