First Look: Microsoft IIS Media Services 4

Quick: Name a platform that can deliver two types of adaptive bitrate (ABR) streaming, both live and on-demand.

Drawing a blank? So was I, until I saw an early September demonstration at the International Broadcast Conference in Amsterdam of Microsoft's Internet Information Services (IIS) Media Services 4, which is set for official release this week.

Even though the version I saw was still in beta, I was impressed enough with the technology demonstration of adaptive bitrate (ABR) streaming to both Windows Phone 7 and an iPhone Apple iOS device, that I asked the Microsoft team for an invite to Redmond to get a deeper look.

What I saw furthered my interest in this multi-device, multi-protocol solution. I found that Microsoft's set of media technologies have evolved significantly; while the last unified Windows Media Technologies release a few years ago began to move toward a middle-ground in terms of delivery, the next-generation media stack solution moves fully toward a common approach to standards-based codecs and delivery.

The old model was a Windows Media Encoder, with live feeds or encoded archived files pushed to Windows Server, which then required Windows Media Services.

By contrast, the new overall media stack doesn't necessarily need a server, as it can leverage IIS Media Services, a free set of media extensions for IIS, on several non-server Windows platforms, including Windows XP Service Pack 3, Vista, and Windows 7.

The rest of the media stack for an end-to-end solution includes Expression Studio with Expression Encoder (or the stand-alone professional version, Expression Encoder 4 Pro); the Silverlight Media Framework for content playback; the new Windows Phone 7; and Windows Azure, plus a few more tools such as the Silverlight Analytics Framework and a Rough Cut Editor that was popularized during the Vancouver Olympics.

During my trip to Redmond, I tried out a variety of options around the combination of IIS Media Services 4 beta and the Encoder Expression 4 Pro application, the combination of which powers Live Smooth Streaming adaptive bitrate (ABR) for both VC-1 and H.264 codecs.

"We can now encode a spectrum of bitrates in H.264 and AAC-LC in IIS Smooth Streaming format," said John Deutscher, senior program manager for the Microsoft IIS Media team "push them to the IIS Server, and deliver out to Silverlight clients on Mac, PC, and Linux. We can also deliver to Windows Phone 7, iPhone, iPad, iPod touch, Nokia s60, Broadcom, and Intel set-top-boxes."

Here are a few highlights of my first look at IIS MS 4 and EE 4 Pro.

Codecs and Players
From both an encoding standpoint, with EE 4 Pro, as well as a delivery standpoint, with IIS MS 4, Microsoft's approach is one of codec agnosticism.

Microsoft's solution supports its own VC-1 as well as H.264, two codecs in the triumvirate that dominates the Blu-ray universe-equally well, which means that it can encode for and deliver to a variety of devices that need one or the other of these two standards-based codecs.

But what about players? Isn't Smooth Streaming tied at the hip to Silverlight?

It turns out that Smooth Streaming is not tied as tightly to Silverlight as conventional wisdom might assume. The reason? A small dynamic-link library (DLL) known as the Smooth Streaming Client.

Smooth Streaming Client (SSC) works as a plug-in to the Silverlight Media Framework, allowing the Silverlight Player to play Smooth Streaming content. The same DLL, however, also can be used by Internet Explorer 7, 8, or 9.

But, wait, it gets even better. Turns out SSC is not even tied to Internet Explorer, since it uses the Windows Runtime, meaning that the potential is there for almost any application to play back Smooth Streaming content.

Unfortunately, Windows Media Player 11 or 12 are not capable of using the SSC, unless Expression Encoder 4 Pro has been installed on the machine. Why is this? It turns out that EE 4 Pro installs a DirectShow filter that Windows Media Player can access to play back archive Smooth Streaming files at the highest bitrate but cannot be used to play Live Smooth Streaming content. If EE 4 Pro is uninstalled, the DirectShow filter is also eliminated.

While Microsoft has a variety of partners that provide encoding solutions, several of which I tested during encoding comparison tests this summer, Microsoft also has its own software-based encoding in the form of Expression Encoder. This tool has been around for some time, and the standard version of it is intended to replace Windows Media Encoder.

The Pro version, however, has the ability to do Live Smooth Streaming. EE 4 Pro will run on Windows XP Service Pack 3, Vista and Windows 7 and will support processing on some Nvidia CUDA-based graphics cards, allowing the GPU to do heavy lifting for transcoding and, soon, a few key parts of live encoding. Specifically EE 4 Pro supports CUDA 1.1 for Windows XP64, Vista and Windows 7.

Expression Encoder 4 Pro can be purchased directly from Microsoft as a stand-alone product or as part of Expression Studio 4 Ultimate, Amazon's discounted $539 version that contains other unique tools such as SketchFlow.

Encoding is a very easy process with EE 4 Pro, consisting of just four steps for traditional Windows Media encoding and only one extra step for Smooth Streaming.

EE 4 Pro works on concepts of projects and jobs, with projects encapsulating numerous jobs. Once a live project is chosen, the content creator is given four clickable steps, which reside in the monitor section of the screen real-estate, for easy access.

The first step is to choose between a live source or file source; clicking on one of the two options will then allow the choice of either a live video input or a pre-recorded file. Don't get confused by the option of pre-recorded files within a live project: these files can be cued up to play back at the beginning of the live encode, in much the same way that a bumper or teaser would play before a live television show.

For live sources, Microsoft suggests using Blackmagic Intensity / Intensity Pro, ViewCast (Osprey 230, 530, 450e, 700HD), Winnov Videoum 4000 and WinTV HDV-950. EE 4 Pro also supports webcams, including those built in to laptop, for instance, or other USB-based webcams, including the HD Live camera manufactured by Microsoft and capable of 720p encoding.

Once a pre-recored file is cued --the second step which lets EE 4 Pro know which of the files it needs to start off with-- then the third step is to choose an encoding type.

The encoding type can be chosen from a set of profiles / presets and then modified, if desired. Saving the profile for future use is advisable if additional similar encoding sessions will be performed.

For traditional encoding session, such as a traditional WindowsMedia encoding, which EE 4 Pro supports, the last step is to click the start button to start the encoding.

The Distribution Process
To distribute Live Smooth Streaming, or to stream to iOS devices, such as the iPad, iPhone and iPod touch, via adaptive bitrate, requires one extra step: creating or choosing a publishing point.

Creating the publishing point requires IIS Media Services. If you don't have IIS Media Services 4, or even IIS 7, don't panic. The new Web Platform Installation (Web PI) is a web installer that prompts for various downloads and automatically senses dependencies (additional applications, DLLs or the like) that need to be installed along with the chosen application.

When I chose to install IIS Media Services 4.0 beta, for instance, it loaded up the dependencies. Should a previous version of a dependency already exist on the target machine, dependencies will not be downloaded, but if an incompatible or out-of-date version exists, the Web PI will prompt you to download the more recent / compatible version.

Web PI will also download hotfixes or patches, for particular options, as it did when I chose to download Application Request Routing (ARR) portion of IIS 7 as a test.

A publishing point is essentially a web server that will deliver the HTTP stream of segments, once EE 4 Pro begins live encoding and parses a few of its two-second segments. Microsoft provides a free web server tool, in the form of Internet Information Services version 7 (IIS 7), that can serve as a publishing point.

IIS 7 and the accompanying IIS 7 Media Services 4, which is required for delivering ABR segments, can be downloaded to a local machine or, preferably, a separate machine that can focus strictly on delivery of the HTTP segments.

Microsoft makes it easy to put IIS MS 4 on an actual server, which I recommend if you're doing live field encoding. For our tests, we used a hefty laptop, a Windows 7 Ultimate 64 bit on an Alienware with an Intel Core i7 X940 (2.13 Ghz) with 8 GB of RAM, but the combination of Live Smooth Streaming and an on-board publishing point on the same machine was highly taxing to the laptop.

Windows Server 2008 R2, recently released, is available in three payment options: $469 to purchase outright, $10 per month for service providers, or in a free version. The free version is for three years, if a small business is using WebsiteSpark, a program offered by Microsoft for small businesses. If you don't want to spring for Windows Server 2008 R2, IIS MS 4 also runs on Windows Vista with SP1 and Windows 7.

After IIS 7 and IIS MS 4 are downloaded and installed, go back to EE 4 Pro and choose the publishing point. In the Sites folder, found in the left column, choose Default Web Site (or the name of a particular domain / website) and then find the Media Services section.

In my case, this section had 4 icons: Bit Rate Throttling, Live Smooth Streaming Publishing Points, Smooth Streaming Presentations, and Web Playlists.

Bit Rate Throttling is an IIS technology that can be used for media delivery, or for any other file type. Like its name, Bitrate Throttling is used to manage bandwidth at a server. It can handle this in two ways: first by sending only the bits your viewers watch, eliminating the delivery of an entire on-demand file if the user abandons partway through. Second, by throttling overall bandwidth at the server level, across all users, Bit Rate Throttling can keep the server's bandwidth allocation from coming close to maxing out.

For media files, Bit Rate Throttling detects the bit rate for common media formats, sends down a fast-start burst of progressive download content and then settles down to a delivery rate just above the encoded bit rate, meaning that the start is successful and the on-going delivery is within a set range. For other file types, the constrained bandwidth is maintained throughout the download process.

Live Smooth Streaming Publishing Points, the second option, is the one we'll choose for the live streaming, so I'll come back to that after covering the final two options.

Smooth Streaming Presentations is designed for encoding and delivering screencasts. While Microsoft has not pushed this as a feature --it's hard to even find information online about the presentations option-- the company is beginning to push this as a way to do multiple-bitrate versions of screen capture that it hopes will provide a definitive answer to entrenched products like Camtasia, which only record in one bitrate.

Web Playlists, the final option, is a URL obfuscation option. To prevent deep-linking directly to content, Web Playlists bridges the gap between blocking mining of client-side playlists, while also eliminating the need for a traditional streaming server for server-side playlists. After all, with the power of IIS Media Services 4, the trend is away from traditional streaming servers in most instances, so Web Playlists brings the best of server-side playlists to traditional web HTTP delivery. In addition to preventing deep-linking, Web Playlists can be used to enforce policies around skip and seek (the "trick modes") and even ad consumption for ad-based revenue models.

For more sophisticated playlist management, Web Playlists also allow creations of two playlists for the same content: one playlist with ads for non-paying viewers and another ad-free playlist for paying customers. This feature can use IIS Manager's User Interface feature, or even custom programming, to create and manage static and dynamic playlists.

While the default output is a familiar .ASX file extension, Web Playlists can be used with any format, including H.264 video content.

What about additional content protection? EE 4 Pro and IIS Media Services 4 are both PlayReady aware, and this digital rights management (DRM) scheme can be added to most content with a single checkbox click. The only limitation at this point is the Pantos specification content delivered to iOS devices, but even this may change in short order.

So, after going through the four options, let's come back to the step-by-step process to get to Live Smooth Streaming.

Once we choose the Live Smooth Streaming Publishing Point option, we need to be sure to check off Push, as push is the only way to deliver Live Smooth Streaming from EE 4 Pro.

"Live Smooth Streaming in Expression Encoder 4 only supports Push mode on a publishing point," says Microsoft's Jamie Lang. "This means that Encoder will push content to the IIS server (as opposed to Pull mode, where the IIS server will pull video from a support encoder). It is important to make sure that all publishing points you create that you wish to use with Expression Encoder 4 have the Push option selected under the Live source type combo box."

Once the particular publishing point is chosen, I also did a browser confirmation to the particular IP address on which IIS 7 and IIS Media Services 4 resided, to confirm that I could see the IIS 7 splash page prior to going through the process of creating a web page that housed the manifest file.

After confirming through a browser on an iPhone that I could see the particular IP address of the publishing point, the next step was to create a web page.

Once the web page was created, the final step was to click the encode start button.

Over the course of an afternoon, I performed tests viewing content on an iPhone and an iPad, both on a Wi-Fi network, as well as attempts to view on Internet Explorer 9. All of these tests worked as advertised, as did tests to a Silverlight player, meaning that the same content was playing back on Apple and Microsoft products fairly seamlessly.

To push the envelope, I tried to view the Pantos-spec iOS streams via Mac OS X's QuickTime Player. Here I ran into a few problems. The direct manifest file, whether an m3u8 or PublishPoint.isml/manifest(format=m3u8-appl) file, resolved to QuickTimePlayer X on a Mac, but the attempt to view the same content by typing the URL with a .html or .htm extension directly into the URL line in QuickTime Player X generated an odd response: a 20-30 second playback of the HTML code in two-three line segments. This appears to be an Apple issue, as QuickTime Player X is a bit behind the iOS version in terms of content awareness of manifest files and may not be fully compliant to the ever-changing Pantos specification draft.

But Wait, There's More
Rounding out the stack of IIS Media Services 4 are three other services I'll touch briefly on: Smooth Multicast, Advanced Logging and Transform Manager.

While Smooth Multicast won't be part of IIS Media Services 4, it may be part of IIS Media Services 4.5. I can attest to seeing it work, not just in a lab environment, but also in a production environment: The IIS Media Services team used Smooth Multicast for the first time across the Microsoft campus while I was on-site, multicasting the annual employee meeting to those employees who chose not to brave the cold of Safeco field on a nippy September day.

IIS Advanced Logging is a step beyond traditional logging, and is a key feature for Content Delivery Networks (CDNs) or others who engage in billing models based on content consumption.

"Logging is a huge differentiator for monetization and analysis of video content," said IIS program manager Chris Knowlton. "It provides video delivery ROI statistics for enterprises, allows CDN customers to charge end users for bytes consumed, and gives producers real-time feedback on whether content is being consumed completely or ending abruptly, either by user choice or based on an issue with particular content."

Advanced logging can be used for progressive download content, traditional streaming and even for Smooth Streaming content. IIS 7 provides server-side logs and a logging infrastructure, via a central logging server. Silverlight delivers client-side logs to IIS 7, meaning that customers need not do anything for Silverlight-based content playback to be tracked.

Transform Manager is the newest, and perhaps most intriguing service, short of Live Smooth Streaming. Think of Transform Manager as a server-side transcoding solution that accesses a number of existing transcoding solutions in to an opaque workflow.

When a file is imported in to EE 4 Pro for transcoding, the system automatically analyzes and indexes the file, and reflects this indexing in the "status" location on the media content tab. In order to eliminate the need to open EE 4 Pro to perform transcoding and indexing, though, Transform Manager can do this work behind the scenes via a series of watch folders and profiles.

Microsoft sees Transform Manager working in harmony with EE 4 Pro, in three areas: converting existing content library, constant ingest/ transcode and converting fragmented MP4 files to Apple HTTP Live for on-demand content.

The latter is an area that is of great interest. According to Microsoft, dropping an existing Smooth Streaming presentations into a watch folder can be automated to transmux multiple Smooth streams to the MPEG-2 TS format, while at the same time converting the Smooth stream manifest to an .m3u8 playlist.

In the area of constant ingest/transcode, Microsoft sees a model in which user-generated content can be constantly transcoded to applicable playback formats. The alpha release of Transform Manager can handle queues of up to one hundred files per minute. Encoding to the Smooth Streaming file format via an Expression Encoder 4 task, or through extensible API connections, Transform Manager would handle all the transcoding at the server level, eliminating the need for manual intervention to transcode user-generated content.

The final area that Transform Manager may surpass EE 4 Pro's transcoding capabilities is in the area of estimates. EE 4 Pro has a slider bar that allows the novice to choose an arbitrary quality setting-based on a 100 per cent scale, versus choosing a constrained / unconstrained transcode that requires a knowledge of bitrates for particular resolutions. The reason that I think Transform Manager may be a better option is that my tests with the Quality slider in EE 4 Pro showed that quality is not necessarily linear.

For instance, using a 171 MB HDV M2T file (at the 1440x1080 at which HDV records) to output a file to 1920x1080 output, a slider setting of 95 per cent yielded a file that was 191 MB, or more than 20 MB higher than the original file. Dialing back the quality to 50 per cent yielded a file that was less than one-third the size, rather than one-half the size, clocking in at 69 MB (or 10 Mbps vs the 25 Mbps that HDV records to tape).

Still, in the end, it may be that both EE 4 Pro and Transform Manager complement one another, with EE 4 Pro being the test bed in which one-off files are tested to tweak a particular transcoding setting. Once the parameters are down pat, the profile can be translated in to a Transform Manager profile, and the server-side transcoding can perform the heavy lifting of multiple file transcodes.

So what's the verdict of the beta version of IIS Media Services 4? Microsoft has made great strides towards a codec- and player-agnostic approach to streaming, especially when it comes to adaptive bitrate output to a wide variety of devices, including those iOS devices from Apple, including the iPad and iPhone. I'm comfortable recommending a closer look at IIS Media Services 4 beta as-is for testing purposes, and I look forward to a more detailed review of Transform Manager and several other features, once IIS Media Services 4 is officially released.

By Tim Siglin, StreamingMedia