Webcasting With Windows Media
Edge Noise Removal—The Edge Noise Removal filter attempts to blank out noise in the image typically seen around the edges of an analog video source. In particular, it’ll blank out the Line 21 (subtitle) dashed lines at the top of the screen. Again, better to have clean sources in the first place, but this feature is there in a pinch.
Archiving the Stream
When encoding, it’s possible to both broadcast the stream out and simultaneously record it to disc in order to make the content available on demand in the future. Of course, it would generate higher quality yet to archive to an AVI file and then do an offline two-pass encode instead, but this works fine for a simple record.The Streaming Server
The encoder is only responsible for sending a single stream out. It’s Windows Media Services that’s responsible for distributing that content. WMS has been available since Windows NT, but it got a big upgrade in Windows Server 2003 and is being enhanced yet again in the forthcoming Windows Server 2008 (now publicly available in Beta 3).The normal mode is to push to the server—the server is preconfigured to accept streams from a particular encoder, which is then able to start streams remotely. It’s also possible to have the server pull from the encoder, initiating the stream only when someone is actually trying to watch it.
For up to five simultaneous viewers, it isn’t always necessary to use Windows Media Services at all. Instead, the players can connect directly to the machine running the encoder. Unlike the push of sending content to a server, clients have to pull the streams from the encoder.
Unicasting versus Multicasting
Unicasting—Unicasting is the default mode of streaming, where a copy of the stream is sent directly to each viewer. This works fine, but can run into scalability issues with large numbers of simultaneous users.
Multicasting—In multicasting, only a single copy of each packet is sent to each router, which then passes only one copy along to each additional destination. This can result in massive bandwidth savings, especially in a LAN or WAN setting. However, multicasting requires that the network be multicast-enabled, making it of value typically in internal corporate or educational environments.
WMS in Server 2003 can automatically fall back to unicasting from multicasting when connecting to parts of the network that aren’t multicast-enabled.
There’s a huge webcasting ecosystem around Windows Media, with myriad products targeting different markets for encoding. Here’s a partial list of some of the more widely used:
• Windows Media Encoder
• Expression Media Encoder
• Digital Rapids
Getting the right hardware to capture and encode the video is of the utmost importance to getting a good webcast—all the setting tweaks in the world won’t help if the source is lousy or if the hardware doesn’t have enough guts to encode.
Capture—Getting the video and audio into the computer is the first step. We have two goals here: getting it looking and sounding good, and getting it in without wasting a lot of bits.
I’m not a fan of "DV Bridges," which convert from analog input to a DV bitstream that is then compressed. The DV codec itself isn’t that great at encoding analog sources, so you can wind up with a loss of detail before the video even hits the encoder. Plus, you wind up spending CPU cycles on decoding and processing the video. Better to use a hardware card that can take the analog inputs in and then do hardware-accelerated video processing on the board from the cleaner source.
On the high end, SDI rules as the video input source of choice. If an SDI feed is available, there’s no excuse for not using an SDI capture card to get perfectly accurate source content. These cards are now available for only a few hundred dollars.
CPU—CPU performance is critical to high-quality encoding, since the more horsepower you can throw at the encode, the higher quality settings you can use. The bigger your frame and the higher your frame rate, the bigger a difference more horsepower makes in quality.As our codec goes up to four threads, the sweet spot for encoding is to have four real cores in the encoder box (either a dual-dual or a single quad). The continuing leapfrogging of Intel and AMD is a great thing for the compression world. As I write this in June 2007, Intel’s Core 2 Duo line provides the highest performance for encoding, but forthcoming chips from both AMD and Intel look to provide yet another big performance boost.
Tarari Encoder Accelerator—For high-performance encoding at high resolutions or in interlaced standard definition, nothing today beats the Tarari board. A Windows Media acceleration product, this PCI-X board will accelerate any Windows Media encoding being done on the box by five to 15 times, enabling higher quality settings to be used, and enabling high-definition encoding not otherwise possible.
The Tarari board enables higher quality modes not available by default that offer quality boosts as well as higher performance, including a bigger motion search (a big help with HD).
The Tarari board is capable of encoding 720p30 and 720p60 easily, and at NAB, 1 Beyond Inc. demonstrated full 1920x1080 60i encoding using the board in one of its high-end workstations.
Inlet Spinnaker—Today, the highest quality live encoder for Windows Media/VC-1 is Inlet’s Spinnaker. We worked with Inlet to develop a high performance quality-tuned live encoder. Spinnaker is a 1U rackmount encoder designed for high availability broadcast applications. Spinnaker supports both 480i and 480p real-time encoding, and has advanced features like captioning support and the ability to include multiple languages into the stream.
The Future of Webcasting
VC-1 Live SDK—The same core codec technology we developed when working on Spinnaker will be licensed out to other companies to make available in a broader range of products. Beyond a variety of built-in quality and performance improvements (and remember, performance improvements are quality improvements in live encoding), it offers API control over everything that’s a registry key today.
The Live SDKs also help intelligent streaming by letting each single encode use up to four processing cores each, instead of having them shared between all encodes.
Live Web—The Live Web SKU targets traditional Windows Media-style streaming to computers and mobile devices.
Live Broadcast—The Broadcast VC-1 SDK adds a variety of broadcast-oriented features for the IPTV market, as well as adaptive complexity. This feature, meant for dedicated compression boxes, lets the program specify a percentage of total CPU power the codec gets, and it’ll dynamically adjust the internal codec settings, including complexity, to provide the best quality for the current content. The goal of adaptive complexity is to avoid the tradeoffs in picking fixed settings for variable content.
Silverlight—Silverlight is a new web browser plugin that supports rich and interactive experiences incorporating WMV video, including webcasting. As a client, Silverlight offers some important advancements over the existing solutions for playing back WMV streams.
First, it’s cross-platform and cross-browser, with announced support for Windows XP and Vista and Mac OS X (both Intel and PowerPC). This will include DRM support for secure streaming in a future version. Also, as a rich architecture, it’ll enable playback of other synchronized live events along with the core audio/video stream. For example, it’ll be able to display real-time captioning included in the source stream, and coordinate with other media types like live PowerPoint slides being pushed down.
Silverlight also offers programmable support for client-side buffering, enabling finer control over latency than was possible with Windows Media Player.
Well, that’s it. Hopefully you’ll find these tips helpful as you move forward in the wild world of webcasting.