Building video application on Windows 8 – things you want to know

If you want to build video applications on Windows 8 platform, you may find this blog useful. We (Windows Azure Media Services team) ships Smooth Streaming Client SDK for Windows 8 and Microsoft Media Platform Player framework (MMPPF) in addition to Windows 8 Media Foundation to help you build rich media applications.

Building Video application on Windows 8 – what are supported? 

If you are building a video application on Windows 8 and your video source is H.264 (.MP4) for instance:

  • • You could use MediaElement class in XAML application to handle the playback. Code sample: 
  • • Or you could use <video> tag in HTML5 application. Code sample: 
  • Here is a detail list of video format that Windows 8 playback pipeline support (full details in Windows blog) : 
  • That’s what happen when developing an application with .Mp4 URL for instance. Windows 8 Media pipeline has Decorder to decode the video, Renderer to render the image and Decrypter to decrypt the video if it is protected. As long as the video format you provides falls into the category I showed in the table above, Windows 8 Media pipeline will handle for you. Meanwhile, Windows 8 team put in a lot of efforts for optimizing all these operations to achieve battery optimization, hardware acceleration and etc.
  • Playing Smooth Streaming content using Smooth Streaming Client SDK for Windows 8

  • What if you want to deliver adaptive streaming, such as smooth streaming through Windows 8 store app? Yes, this is possible with our smooth streaming SDK as an extension of Windows 8 media platform. When you hand in a application with Smooth Streaming URL (…/manifest), media engine won’t be able to understand. However, Windows 8 SDK has Media Foundation Interface (IMFByteStreamHandler) for fetching media data from given media source. And we build Smooth Streaming extension through that Interface to help media pipeline understand Smooth Streaming by “unwrapping it”. As we know, Smooth Streaming is like a format wrapper of H.264. And once we “unwrap” the format, we feed H.264 video back to Windows 8 media pipeline. And the pipeline could do all the decoding, rendering and decrypting job as showed in diagram below. Since H.264 is a native codec of Windows 8 platform, we could benefit from the video optimization of the platform.

What’s the relationship between Smooth Streaming Client SDK and Media Player Framework?

I think this graph below explains the relationship between these two. Smooth Streaming Extension SDK is built on top of Media Pipeline as I explained in earlier section. Media Framework is one level higher that wrapping around Smooth Streaming Extension SDK. It provides additional functionality, such as player styling, advertisement support, close caption support and etc. If you want to have more control over your media player, I would suggest you use Smooth Streaming Client SDK. But you need to build a media player from scratch. However, if you want to get a media player up and running immediately with UI styling, you should try our Media Framework. And it is very easy to customize the default media player we provided.

I have a few blogs on how to get started with each of them:

< Smooth Streaming Client SDK >
Download: Smooth Streaming Client SDK for Windows 8

    • • Building Windows Store Apps with Smooth Streaming Client SDK Beta 2 (link)

< Microsoft Media Platform Player framework >
Download: http://playerframework.codeplex.com/

    • • Microsoft Media Platform Player Framework for windows 8 – closed caption support (link)
    • • Adding VMAP support for Windows 8 video app using Microsoft Media Platform Player Framework (link)
    • • Advertising support for Media Player framework on Windows 8 (link)

Question: If I don’t use Smooth Streaming, could I use Microsoft Media Platform Player Framework for its additional features such as Advertising?

Answer: Yes! MMPPF supports progressive download. You could utilize MMPPF’s functionality such as standard advertisement support, closed caption support, multiple audio support or simply styling your media player. Besides Windows 8 store app, Media player framework also has Silverlight version and HTML5 version for browser. Especially, Silverlight version media player has been released for over 2 years and it is a very well-establish player framework for many events, such as NBC Sunday night football. By using Media Player framework, you could provide consistent video player experience onto different platforms.

Question: Should I build a store application for Windows 8, or a browser version of media player?

Answer: I shall say it depends on your business need. HTML5 <video> in IE, Chrome or Firefox doesn’t support any adaptive streaming format, such as Smooth Streaming. Safari has its proprietary implementation for HTTP live streaming, however, it is only available on IOS platform. Hence, if you want to deliver any content in adaptive streaming, you have to build a Windows 8 app. You may also ask, is there other adaptive streaming format besides Smooth Streaming gets supported by Windows 8? The answer is DASH (Dynamic Adaptive Streaming over HTTP). DASH spec is still in draft stage but DASH is expected to be the standard for adaptive streaming format. We are working on getting DASH supported by Windows 8.

Some awesome application: Hulu Plus

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.

Summary

Windows 8 is a great device for entertainment. By leveraging on our SDK and framework, we hope you could create amazing video application, which not only deliver content smoothly, but also provide excellent interaction experience for the viewers. Meanwhile, if you are interested in creating, managing and delivery video content from the cloud, you could check out our Media Services in the cloud – Windows Azure Media Services.

8 Responses to Building video application on Windows 8 – things you want to know
  1. [...] Nuget soon) adds support for both approaches out of the box, a first for the library…”Buildi... danrigby.com/2012/10/28/windows-8-developer-links-2012-10-29
  2. [...] • Building video application on Windows 8 – things you want to know (Link) [...]... mingfeiy.com/media-services-for-build-2012
  3. [...] We provided both SDK and player framework for you to choose from. By using either of them, you could be ... mingfeiy.com/client-ecosystem-for-windows-azure-media-services
  4. Nathan Nguyễn Reply

    Hi Mingfeiy,

    I have a Asp.Net MVC 4 Webpage (Sorry, it not relate with your Post). I want to use HTML5 to play stream video with mp4 type. My video on Windows Azure with Media Service.

    I deep searching on google about the HTML5 play stream video but not have the answer right,

    You can suggest me any code for Play Stream Video from Azure with HTML 5.

    Many thanks

  5. [...] Development: [MSDN] Developing Windows Azure Media Services Client Applications (link) [Blog] Building... mingfeiy.com/windows-azure-media-services-useful-resources

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="">