Client Ecosystem for Windows Azure Media Services

This blog gives an overview of what kind of client support Microsoft offers as part of Windows Azure media Services. On one side, you could create, manage, package and deliver media asset through Windows Azure media services. Many popular streaming formats are supported, such as Smooth Streaming, Http Llive Streaming and MPEG-dash. On the other hand, we provide various SDKs and frameworks for you to consume media asset by building rich media applications rapidly on many platforms, such as PC, XBox, mobile and etc.

VIDEO DELIVERY THROUGH BROWSER

Today, though people started to watch videos on different devices, video streaming on desktop through browser is the most popular way for video delivery. Most businesses built rich media applications with plugin such as Silverlight or Flash. For instance, Netflix web version is built using Silverlight and Hulu web version is using Flash. This plugin approach works fine for majority of operating systems and browsers.

However, if you want to target browser (IE) on Windows 8, things get a bit tricky. IE10 on Windows 8 desktop mode supports Silverlight and Flash. However, Silverlight doesn’t get supported on WINRT version of Windows 8. And for Metro Mode IE, only HTML5 and white-listed Flash site gets supported. Clearly, plugin is going away on tablet devices.

You may have questions at this point. “So how about using HTML5 to deliver content through modern browser?”

HTML5 only supports progressive download for most of browsers. If you want to implement Adaptive Streaming (e.g. Smooth Streaming), most of browser <video> doesn’t support. The only browser that supports Http Live Streaming is Safari on iOS (MAC or i-Devices). But this is just a propitiatory solution from Apple. Therefore, if you want to use Adaptive Streaming, which enables content protection and live, you would need to work with something else rather than HTML5. Lastly, don’t forget, only 2/3 of browsers support <video>. There are still users using IE 6/7/8 that won’t be able to watch your progressive content.

We provide the following SDK and framework as solution:

Microsoft’s open source media player framework – a component of the Microsoft Media Platform. It built on top of Smooth Streaming Client SDK (download link), enables developers to quickly deploy a robust, scalable, customizable media player for Smooth Streaming delivery. All the features supported by Client SDK are piped through MMPPF. However, with MMPPF you could enjoy some high level features, such as advertisement support (VAST, VPAID, VMAP) and UI control built in. MMPPF for Silverlight is quite well-establish and used by many major events, such as Beijing and Vancouver Olympics, Sunday Night Football on NBCSports, France Télévisions and etc.

Which one should I use?
We always recommend to use MMPPF – the player framework. It has player control built up for you and you could customize it upon your need. Smooth Streaming Client SDK is underneath Player framework. If you want to build a player from scratch, you could use Smooth Streaming Client SDK with higher flexibility, but of course a lot of more development efforts.

If you just need to deliver a simple video experience (progressive playback), you could use HTML5 (browser) player framework. We also provide a fall back experience: HTML5 video is configured the primary experience, Silverlight is configured as the next fallback, and a list of hyperlinks to the media is declared as the last fallback. You could check out a advanced fallback demo here.

Microsoft Smooth Streaming Plugin for OSMF (Smooth Streaming for Flash)

Download: http://www.microsoft.com/en-us/download/details.aspx?id=36057

Our team just realized a preview version of Microsoft Smooth Streaming Plugin for OSMF. Using it, you can add Smooth Streaming capabilities to existing Open Source Media Framework (OSMF) and Strobe Media Playback players.

This version of Smooth Streaming plugin includes the following capabilities and works with OSMF 2.0 APIs:

  • • On-demand Smooth Streaming playback (Play, Pause, Seek, Stop)
  • • Support for video codecs – H.264
  • • Support for Audio codecs – AAC
  • • Multiple audio language switching with OSMF built-in APIs
  • • Max playback quality selection with OSMF built-in APIs
  • You could read the announcement blog post and Two Worlds Collide: Smooth Streaming Meets Flash Player by Streaming Media.

Printscreen of Smooth Streaming OSMF plugin for strobe player

VIDEO DELIVERY FOR IOS DEVICES

We provide two different framework for delivering adaptive streaming content onto iOS devices.

iOS azure media player framework – Open Source

Githubhttps://github.com/WindowsAzure/azure-media-player-framework

Here is a short introduction of this media player framework:

What’s this framework for?

This framework enables developers to build native video application on iOS platform, which could consume secure HLS (Http live Streaming) content from Windows Azure Media Services. Mainly,this framework made easy for developers to integrate client-side advertisements. In the future we will also support various advertisement standards, such as VAST 3.0 and VMAP 1.0.

I have very detailed write up about this framework in another blog, please read “Announcing Windows Azure Media Player Framework Preview for iOS“ if you are interested.

Printscreen for Azure Media Player framework for IOS

iOS porting kit for Smooth Streaming

As I will introduce in the next section (Video delivery for any devices), we developed a porting kit for playing back Smooth Streaming onto any device. Since iOS devices are popular, we further implement this porting kit for iOS system. Therefore, for anyone who uses this porting kit, you will need to pay for Final Product License. Please email sspkinfo@microsoft.com for accessing the porting kit.
Note: according to Apple’s HLS guidence,

If your app delivers video over cellular networks, and the video exceeds either 10 minutes duration or 5 MB of data in a five minute period, you are required to use HTTP Live Streaming. (Progressive download may be used for smaller clips.).

Hence, we came out with another framework for you to build application that consume HLS with advertisement.

VIDEO DELIVERY FOR ANY DEVICES

- [Recommend] Smooth Streaming Porting Kit 

We can’t possibly implement Smooth Streaming Client for any devices. Thus, we abstract Smooth Streaming Specific aspects (Container parsing, heuristics and etc) as Smooth Streaming porting kit. And we add a few interfaces to “communicate” with a specific device. Below is the architecture of Smooth Streaming Porting Kit:

Smooth Streaming Porting Kit

As showed in the diagram above, there are four interfaces here:

• Hardware Abstraction Layer (HAL): Programming interfaces for interaction with hardware A/V decoders (decoding, rendering). If Roku implements this, it will need to write HAL in their own language for communicating to its hardware layer to decode and render video. And then Roku hooks HAL up with porting kit through HAL interface.

• Platform Abstraction Layer (PAL): Programming interfaces for interaction with the operating system (threads, sockets). Similarly, Roku would need to implement PAL in their language for talking to its specific operating system (Linux in this case). And Roku hooks PAL up through PAL interface.

  • • DRM Interface: we provide DRM interface that you could write code to hook up with any DRM solution. For instance, Microsoft PlayReady team ships porting kit for any device. If you want to use PlayReady content protection, you will then write code to “glue” our DRM interface with your implementation of PlayReady porting kit.
  • • Application Interface: you could build your application on top of Application Interface. If you pass media source in Smooth Streaming format, your device will be able to understand and your application will contain heuristics.
  • Is this FREE?
  • The answer is no. This porting kit is the only client SDK we provide that has a license fee. And there are two types of licenses involved.
  • Interim Product License (IPL): who ports the kit pays this IPL with $50,000 one time fee. For example, if Samsung TV wants to enable Smooth Streaming on his own platform and Samsung hired a 3rd-party company to do it. The 3rd party company needs to pay for IPL. After that the 3rd party company has the rights to resell it to other companies as well for its solution.
  • Final Product License (FPL): who ships the final product pays. It is based on a royalty model. For the first 10,000 units, there are no fee paid. For units shipped above 10,000, each device pays $0.1 and the total amount is caped at $50,000 a year. In this case, if Samsung TV at the end releases an app based on the porting kit he hired a 3rd-party to implement, Samsung pays for the FPL.

For more information, you could check on our portal: aka.ms/sspk. And please email sspkinfo@microsoft.com for inquiries.

VIDEO DELIVERY TO WINDOWS 8 PLATFORM

There are three ways of delivering video on Windows 8:

  • • Building a video application on Windows 8 (distributed through Windows Store)
  • • Via Metro IE
  • • Via Desktop IE
Building a video application on Windows 8 (distributed through Windows Store)

We provided both SDK and player framework for you to choose from. By using either of them, you could be able to build a rich media application rapidly. Hulu Plus hits Windows Store a few days ago, which is built on top of our SDK. The video playback is very smooth and seeking is very fast as well. I do enjoy the Pin-to-Start functionality so I could jump into my favorite show right away. The most attractive feature I found is being able to “Snap View” my video in a small windows and use other application side-by-side.
To understand more about building application on – <building video applications on WIndows 8 – things you need to know>.

Snap View function for Hulu on Windows 8

As I mentioned earlier on, you could also deliver video through Metro IE/desktop IE, but there are limitations on the plugin usage. Please refer to “Video delivery through browser” section.

VIDEO DELIVERY TO XBOX

We bring smooth streaming playback and PlayReady protection capability for premium content onto XBOX platform. Similarly w e have Smooth Streaming SDK and Player Framework wrapped around it. And importantly, Xbox SDK and framework are shipped within XBox ADK (Application Development Kit).

Get started through: http://xbox.create.msdn.com

There are many applications already in the marketplace such as Comcast, Sony, HBO and etc. We also shipped a reference application with Metro look and feel, which demos how to build a Xbox application to consume Smooth Streaming with or without PlayReady, how to monetize applications with in-built Ad support and rich analytic and how to integrate with XBox Live.

VIDEO DELIVERY TO WINDOWS PHONE 8/7

The IIS Smooth Streaming Client (Silverlight) for desktop I introduced in earlier section has a separate version for Windows Phone as well. And on top of the SDK, we always recommend you to use Player Framework:

• Player Framework for Windows phone 8 

This is a brand new version of the Player Framework for Windows Phone, available exclusively for Windows Phone 8, and now based upon the Player Framework for Windows 8. While this new version is not backward compatible with Windows Phone 7 (get that http://smf.codeplex.com/releases/view/88970), it does offer the same great feature set plus dozens of new features such as advertising, localization support, and improved skinning. Find out more about Windows Phone 8 player framework features here.

PrintScreen of Windows Phone 8 media player framework

Summary

If you have any questions related to the usage of SDK or framework, please post on our Media Services Forum. I also have a slide deck posted on Slideshare and you could get more information there as well.

22 Responses to Client Ecosystem for Windows Azure Media Services
  1. [...] rapidly on many platforms, such as Windows, iOS, XBox, etc.  At this time, we ship SDKs and player ... dailyict.com/announcing-release-of-windows-azure-media-services
  2. [...] アセットを消費できます。現時点では、次のプラットフォーム向けにSDKとプ... satonaoki.wordpress.com/2013/01/23/azure-media-services-release
  3. [...] rapidly on many platforms, such as Windows, iOS, XBox, etc.  At this time, we ship SDKs and player ... weblogs.asp.net/scottgu/archive/2013/01/22/announcing-release-of-windows-azure-media-services.aspx
  4. [...] à un maximum de clients et terminaux qui sont aujourd’hui de plus en plus hétérogènes. Des SDK et ... blog.pouyat.com/2013/01/23/windows-azure-media-services-est-disponible
  5. Cowan Reply

    Is the osmf based solution going to have live streaming and playready support? Thanks!

    • mingfeiy Reply

      That’s on our roadmap for this year release!

      • Cowan Reply

        Thank you for your reply. Is that possible to have playready drm running in flashplayer? Does flashplayer have some kind of ‘back door’ for other drm solution to be plugged? Thank you again.

        • mingfeiy Reply

          We don’t have that available yet. Flash Player uses Adobe Access but it doesn’t work with Smooth Streaming yet.

  6. [...] last piece is to consume or play the file. Window Azure Media Services provides a set of client player ... wickscloudworkbench.azurewebsites.net/2013/01/24/windowsazuremediaservicesga
  7. Jack Reply

    Thank you so much for the thoughtful blog post, I signed up for Windows Media Services but I can’t find any APi documentation about encoding parameters, how do you specify a formats framesize, bitrate, HLS settings, etc in your media requests? Can you send me a link.

  8. [...] et terminaux qui sont aujourd’hui de plus en plus hétérogènes. Des SDK et du ... msdnrss.thecoderblogs.com/2013/01/windows-azure-media-services-est-disponible
  9. [...] 通过在许多平台上快速构建丰富的媒体应用程序,如 Windows,iOS,XBox,等,您... blogs.msdn.com/b/scottgu/archive/2013/02/04/announce-windows-azure-media-service.aspx
  10. [...] rapidly on many platforms, such as Windows, iOS, XBox, etc.  At this time, we ship SDKs and player ... windows-azure.net/announcing-release-of-windows-azure-media-services

Leave a Reply

Your email address will not be published. Please enter your name, email and a comment.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">