New Azure Blog posts on Media Services

We’ve been very busy with new features for Media Services including faster encoding, new content protection services with PlayReady, and what everyone has been waiting for – Live Streaming.  But before we talk about the new features, the team has been updating the Azure blog with new details on our existing services.

Last week I posted on the Azure blog about our Advanced Encoding Features.  If you ever wanted to know more about how to set up custom presets in Media Services, do sub-clipping or stitching of videos, generate thumbnails or overlay images and audio on top of your videos with fades, then head on over to the Azure blog to check out my recent post.   In addition,  I just posted a new blog on Delivering Premium Audio Experiences with Dolby Digital Plus .   Milan Gada has also posted a  terrific series on Media Services Asset auditing and monitoring over the last month including the following:

Auditing Media Assets Lifecycle – part 1 –  learn how to use logging and Excel power query to gain insight into your Media Services account. Create Asset reports that show when assets were created and deleted.

Auditing Media Assets Lifecycle – part 2 – how to track assets as they are copied from your Storage account to VMs for media processing.

Auditing Media Assets Lifecycle – part 3 – how you can enhance your Asset  auditing  custom reports with data about individual files being added to an asset.

Monitoring Azure Media Services Application  –  how to build out custom monitoring of your Media Services account for building out your own alerts and notifications.

Calculating Billable Gigabytes for Media Encoding Jobs

Storage for Media Services

At this time we don’t have an official “Topic” in the navigation section of the blog yet (working on that), but you can easily bookmark and see all of our Media Services blog posts by using the tag “media” URL on the blog site.

The Media Services team is working on a long list of upcoming blog updates for the week of the International Broadcasters Convention in Amsterdam starting on September 10th, so stay tuned for more details on our Live Streaming and Content protection services.


NAB 2014 Announcements from Media Services

By John Deutscher
Principal Program Manager Lead

We are unveiling several exciting updates to Microsoft Azure Media Services at the National Association of Broadcasters (NAB) convention today, all consistent with Media Service’s broader vision of helping media developers build end-to-end media workflows and reduce the costs associated with integrating multiple products and providers. This includes key new services like Live, Content Protection and Key Delivery, and enhancements to our encoder’s capabilities and support for popular streaming formats. We are also working on improving the integration of CMS’s with Media Services by offering low-cost open source solutions along with more complex integrations with industry leading OTT providers.

Here are some of the highlights of what our team has been working on for NAB this year:

Live Streaming Preview

Building on the success of live streaming the 2014 Winter Olympics to millions of customers in 22 countries, we will soon be opening up the underlying technology that made this possible in preview to our customers.

All Media Services customers will have access to the tools and services needed to handle everything from ingest to processing, and distribution of on-demand video content or streaming live events at Olympic scale, to nearly any device.

If you’re interested in previewing our live services contact us at:



On-Demand Encoding and Streaming


Secure Diagram

Secure Delivery Service Preview

We are introducing a new secure delivery service that enables customers to protect their content during upload, while at rest in storage, and during playback, using either Microsoft PlayReady Digital Rights Management (DRM) or AES 128 encryption. This feature allows you to serve both encrypted HLS and Smooth Streaming to your client devices. In addition, we are announcing the preview release of our PlayReady License delivery service. Using this new service you can configure and deliver PlayReady licenses to your client applications directly from a Microsoft Azure platform service.

For more details on the new PlayReady service and AES dynamic encryption with Azure Media Services, please read Mingfei Yan’s latest blog post here.

If you’re interested in previewing our secure delivery services contact us at:


Office 365 Video Portal

Just a few weeks back at the SharePoint conference we introduced a new Office 365 video experience for enterprise customers – offering secure, cloud-based video upload, storage and optimized playback all powered by Media Services. This new service leverages the power of Azure Media Services encoding, streaming, and security services to provide an enterprise grade solution with the power of Office 365 in the cloud and on client devices. Learn more about how this awesome new solution can work for your organization here.



Two New Data Centers in Japan

Our platform team opened two new data centers for Media Services last month for our Japanese customers: Japan-West and Japan-East. We are all very excited about this new region and are looking forward to working with our new customers in Japan.



MPEG-DASH for On-Demand Streaming is now GA

Our streaming server team continues to invest in MPEG-DASH across both On-Demand and Live scenarios. Last year we launched our On-Demand DASH preview and contributed reference streams to the DASH-IF site — these enable player development across the ecosystem. We are actively working with contributors (including Microsoft Open Technologies) to the DASH-IF JavaScript player to ensure interoperability of Live streams produced in Media Services with the DASH.js player framework.

We are happy to announce that our MPEG-DASH support for on-demand streaming through our streaming origin services is now GA. It is included in the cost of an Origin reserved unit. Live streaming with MPEG-DASH is still in private preview and available only to Live preview customers at this time.

Contact us if you are interested in testing MPEG-DASH live streaming at:



Grass Valley® HQ/HQX Digital Intermediate File Support

The encoder team added built-in support for sourcing from Grass Valley’s HQ Codec/HQX Codec. This opens up a new door for high-quality digital intermediate ingest into Media Services. The higher quality source files from Grass Valley’s HQ and HQX codecs provides the ability to encode without significant quality loss at high-speed and with low CPU usage.

The HQX format supports compression ranges from 25:1 to 2:1 and bitrates from 45 Mb/s down to 7.8Mb/s. In addition, the codec supports 10 bit color depth and 4:2:2 YCbCr chroma. Grass Valley Edius users can now upload and encode AVI files with the codec for encoding  and stream them for multi-device distribution via HLS, MPEG-DASH, and Smooth Streaming.

To read more details about the benefits of the Grass Valley HQ/HQX digital intermediate format download the application note here.



Apple HLS version 3 Support for Improved Backwards Compatibility

Responding to customer demand, our streaming server team added support for the older HLS version 3 draft specification to our Dynamic Packaging feature. Previously we only supported the newer un-muxed HLS version 4 specification. Multi-language support was the primary motivation behind choosing HLS v4 two years ago for our service. At that time, Android was seeing a lot of active development and with its largely international customer base, it was assumed that Android would adopt HLS v4 for these multi-lingual markets. Unfortunately that is not what happened.

We listened to customer feedback that a lot of older devices had not moved to the newer Apple drafts including some Smart TV’s, JWPlayer, and Android.  This feature of the streaming origin server now provides backward compatibility to older Android devices, version 4.2.2 to present, as well as the ability to reach older connected TVs and set-top boxes. In addition, we have added the ability to select audio languages when streaming HLS v3 using Azure Media Services — despite limitations in the original specification. To use HLS v3 in production today, simply modify and add a “–v3″ to the end of your streaming manifest URL for HLS:


This will mux the default audio language into the video. For more details on how to handle multi-language muxing with HLSv3, read the MSDN forum post with details from Nick Drouin here.



New Content Management Integration with Orchard CMS

Microsoft Open Technologies is announcing a new module for the open source Orchard content management system (CMS) which provides a convenient user interface for managing Azure Media Services content. Now users can store, encode, manage and view videos using Media Services natively in Orchard.  Multiple input and output formats are supported including adaptive bitrate streams. The included custom video player framework, can automatically select the ideal playback option including Flash,DASH.js and Silverlight, allowing users to preview their content. The integration of Azure Media Services and Orchard makes it easy to build powerful and scalable video content management solution on Microsoft Azure. Features of the new module include:

  • Uploading a single video and automatically encoding in multiple formats
  • Support for dynamic bitrate output formats (Apple HLS and MPEG-DASH)
  • Comprehensive access policies
  • Scheduled publication of video assets
  • Built-in player that automatically selects the optimal playback client

Getting Started with Orchard and Media Services

There are several ways to set up a site based off of Orchard CMS ranging from the very simple (Azure Web Sites Gallery) to the more complex, but very flexible, building from source code. The modules user guide describes five different ways of enabling these features. The user guide also clearly documents how to configure the module to use your Media Services subscription (if you don’t have a subscription yet you can try things out with a free $200 credit trial subscription) This module is part of the official Orchard project, if you have feature requests, bug reports or better yet documentation and/or code contributions please head on over to the Orchard project.

To get more details on the new module for Media Services, check out the Open Tech project here.



Dolby® Digital Plus Encoding Now Available

Our encoder team is also excited to announce that the Azure Media Encoder is now certified for Dolby® Digital Plus encoding. With the proliferation of devices that consume media, there is an increasing need for customers to offer superior audio quality to their users and deliver premium content with 5.1 surround sound. Using Media Services, HD programming with high quality multi-channel surround sound is now possible across different platforms, including Windows 8, Xbox, mobile devices and more.

Dolby® Digital Plus, or Enhanced AC-3 (E-AC-3), is an advanced surround sound audio codec designed for high quality audio. Dolby Digital Plus is based on core Dolby Digital technologies, an established standard for cinema, broadcast, and home theater surround sound. Start delivering a first-class media experience to your users today.

For more details on using Dolby Digital Plus encoding with Microsoft Azure Media Services, check out this article.


Dolby® Professional Loudness Metering Support

The Azure Media Encoder team is also announcing support for Dolby® Professional Loudness Metering. Viewers adjust the volume control based on the loudness of dialogue, and do not adjust again for typical variations in programs, such as quiet sections without dialogue or brief high-loudness scenes like explosions. Their biggest complaint is when the dialogue level changes drastically from one video to another. Broadcasters and content producers use Dolby® Professional Loudness solutions to help ensure consistent audio loudness levels.

The Dolby® Professional Loudness Metering solution combines the use of standards-based loudness estimation algorithms with Dolby® Dialogue Intelligence™ technology. Supported algorithms are those most prominently in use worldwide: Leq(A), ITU-R BS.1770-1, ITU-R BS.1770-2, and EBU R 128.

With the integration of this technology in Azure Media Encoder, you can now ensure that your Dolby® Digital Plus encodes have the correct setting for Dialog Normalization, and ensure a consistent playback experience for your customers. Start delivering a first-class media experience to your users today. For more details on using Dolby® Professional Loudness Metering with Azure Media Services, check out this article.



OSMF Player Beta with MPEG-DASH Support

The Media Services client team is  announcing a beta version of a Flash based OSMF plugin with MPEG-DASH support. Using the OSMF plugin, you can add both Smooth Streaming and on-demand MPEG-DASH (beta) content playback capabilities to existing OSMF and Strobe Media Playback players and furthermore build rich media experiences for Adobe Flash Player endpoints using Media Services. The player does not yet support live streaming of DASH content, but we are working on that too. Download the new player plugin here.


Smooth Streaming Client SDK for Windows Phone 8.1

Our client team also updated the Smooth Streaming Client SDK for Windows Phone 8.1 to align with the announcement of Windows Phone 8.1 at the //Build/ conference. This release includes the same feature set as the Smooth Streaming Client SDK for Windows 8/8.1 and also uses the same API which will help unifying development efforts across Windows, Windows Phone and XBOX ONE applications For more details check out Cenk Dingiloglu’s blog post here.

Microsoft Smooth Streaming Client SDK 2.5 with MPEG-DASH Support

The PlayReady team, working in conjunction with the Media Services team announced the availability of the Microsoft Smooth Streaming Client 2.5 with MPEG DASH support. This release adds the ability to parse and play MPEG DASH manifests in the Smooth Streaming Media Engine (SSME) to provide a Windows7/Windows8 and MacOS solution using MPEG DASH for on-demand streaming scenarios. Developers that wish to move content libraries to MPEG-DASH now have the option of using DASH in places where Silverlight is supported.

The existing SSME object model forms the basis of DASH support in the SSME. For example, DASH concepts like Adaptation Sets and Representations have been mapped to their logical counterpart in the SSME. Also, Adaptation Sets are exposed as Smooth Streams and Representations are exposed as Smooth Tracks. Existing Track selection and restriction APIs can be expected to function identically for Smooth and DASH content. In most other respects, DASH support is transparent to the user and a programmer who has worked with the SSME APIs can expect the same developer experience when working with DASH content. Download the new player SDK here. For more details check out Cenk Dingiloglu’s blog post here.


That’s all of the updates from the engineering team for NAB. The business team also has a lot of exciting partnership announcements and customer case studies to talk about as well. I’ll be updating the blog after NAB with announcements and links to more details.

MPEG DASH preview from Windows Azure Media Services

By John Deutscher
Principal Program Manager Lead
Windows Azure Media Services

With our most recent service updates from our origin server team, we have enabled a new feature in the server called “Dynamic Packaging” that allows you to encode to a single set of standard ISO MP4 files and then dynamically request multiple protocols by simply changing the URL that you use on your content.

Nick Drouin, Program Manager for Dynamic Packaging on the WAMS team, provides a great overview of this feature on his blog here.

This week we introduced a new “preview” feature of Dynamic Packaging to enable support for MPEG-DASH live profile streaming.

For those of you that are not familiar with MPEG DASH, I will give some quick background.  DASH is a universal delivery format that provides end users with the best possible video experience by dynamically adapting to changing network conditions.  It is technically similar to protocols like Smooth and Apple HLS in the sense that it provides a manifest definition for the description of multiple bitrates of video and audio available to a client player application. It is then up to the client player to make decisions at run-time about various factors such as network bandwidth, CPU utilization, screen dimensions, etc… to adjust the streaming experience for each viewer.

The big differentiator with DASH is that it is an international standard that is now controlled by a standards body – the Motion Picture Experts Group (MPEG) – instead of being controlled by Microsoft (Smooth Streaming) or Apple (HLS). Several companies participated in the creation and standardization efforts around MPEG DASH, including Microsoft, Apple, Netflix, Qualcomm, Ericsson, Samsung, and many more.

One of our team’s long term partners in Italy is Rainet. They have been early adopters of many of our technologies back to IIS Media Services 2.0. They are also an early adopter of MPEG-DASH with WAMS Dynamic Packaging . Rainet has started to test and adopt this feature during the development in their Windows 8 Apps for Rai.TV.  The new Rai.TV application offers catch-up TV services for their viewers in Italy (Rai Replay) and soon they will be adding support in their web site for DASH with the Dash.js open source player library.

For a deeper background on MPEG DASH, I recommend you read the overview from the DASH Industry Forum here.

For Media Services, the plan and roadmap has always been to embrace the industry standards as the evolve and make it simple for customers to get any format to any device.  We see MPEG-DASH as the eventual replacement for all of the features that we have introduced and implemented in the past years with Smooth Streaming.  Over time we will get out DASH support to have feature parity with Smooth, and introduce some even cooler features that are only available to us in an industry standard like DASH .

The implementation of MPEG DASH in Media Services is first coming to the Origin Streaming service through the Dynamic Packaging feature.  This is available now for you to take for a test drive.  While the DASH feature is technically only at “preview” quality, you can access it from your on-demand streaming Origin server in Media Services.

To get started with testing out DASH, follow these simple steps.

  1. The first thing you need is a Windows Azure account.  You can get a free 90 day trial account here, or if you are an MSDN subscriber you already have benefits that allow you to use Azure and Media Services. Check out Scott’s blog that describes the new monthly monetary credits available here. You can get up to $150 per month in credits that can be used for Media Services.
  2. Next, get a Media Services account. Read through the How to Create a Media Services Account article on Windows Azure to get started.
  3. Go to the Azure Management portal by logging into
  4. Navigate to your Media Services account in the left hand navigation menu and select your account in the main window.
  5. Click on the ORIGINS tab at the top of the screen and then click into the Default Origin in your account. Click on the SCALE tab at the top of the screen.  In order to test the DASH streaming feature, you will need at least 1 On-Demand Streaming reserved unit (RU).  Drag the slider up to 1 to add to your account.  Note that there is a price associated with this.  Each RU is $199 a month (check current pricing here).  The price is prorated throughout the month, so dialing this up to 1 for a day would be around $7 for the day.  If you have MSDN monthly credits you can apply them to this feature as well.
  6. It takes about 10 minutes for the Reserved Origin unit to be spun up and deployed. Monitor the portal dashboard tray for status notifications.
  7. To test out DASH streaming, you need to have one of the following:  An existing Smooth Streaming Asset, or an existing set of multiple bitrate MP4 files in an Asset that you already encoded.  Alternatively you can upload and encode a full set of MP4 files using the portal as well.   For now, I will assume you have nothing, and walk through the basics.
  8. Select the Content tab at the top of the Portal page.
  9. Click on the Upload button in the command bar.
  10. Upload a video file in one of the formats that is supported.  Don’t forget to provide a name for the file.
    NOTE: The upload control in the portal uses your web browser and has a limitation of 200 MB.  If you want to import something >200MB, you can use one of the Azure Storage client tools like CloudBerry or others that supports ingesting large files into Azure.  From there, use the option in the Upload dialog box to import the Asset from Storage.
  11. Once your file is uploaded, kick off an encode in WAMS by pressing the Encode button.  In the Encoder dialog, you can select from one of the pre-defined presets. At this step, you MUST use one of the presets that begins with “H264 Smooth Streaming”.   This will generate multiple bitrate Smooth Streaming files that are GOP aligned and encoded with H264 video and AAC audio.

    If you are writing code to do this, I encourage you to instead use the “H264 Adaptive Bitrate MP4 Set” presets, as this will generate standard MP4 files instead of Smooth. Currently through the portal you have to use Smooth due to lack of portal support for getting the correct dynamic URL from MP4 file sets. We are working on making that easier soon!
  12. Depending on the size of your file and duration, it may take awhile for it to encode. Take a break here and go get a nice beverage.
  13. After the encode completes, you should refresh the CONTENT page in the portal and see your finished Asset.  From here you can “PUBLISH” the Asset so that it is publicly available on your Origin Streaming server.
    To do this, click the PUBLISH button in the command bar.
  14. Once your asset is Published, you will now see a URL in the portal under the Publish URL column for your asset.
  15. The Published URL you are given back will be for the Smooth Streaming manifest. It will be in the following URL format:{media services account name}{locator ID}/{filename}.ism/Manifest
  16. To get back MPEG DASH from the dynamic packaging feature at this step, you just need to change the format of the Manifest being returned.Just add (format=mpd-time-csf) after Manifest and you will get a dynamically generated MPEG-DASH live profile MPD file.So the full URL will look like this:
    {media services account name}{locator ID}/{filename}.ism/Manifest(format=mpd-time-csf)
  17. If you get an error at this point (404, etc), double check that you actually have an On-Demand Origin reserved unit set up.  Make sure that your URL has “” in the domain name as well.
  18. Just so you are aware, here is a quick table of the other supported format URL strings that you can use with Dynamic Packaging:
    Smooth Streaming /Manifest
    Apple HLS v4 /Manifest(format=m3u8-aapl)
    MPEG DASH (live profile) /Manifest(format=mpd-time-csf)


  19. Now you can test your stream in any compliant MPEG-DASH player.  There are a few available out there, with my current favorite being the DASH-IF reference client called DASH.js that is available on GitHub.Microsoft Open Tech recently announced that they are actively contributing to the DASH.js player framework.It currently only works in specific browsers that support the HTML5 Media Source Extensions (MSE).More clients will be available over time this year.  Check out the software section of for more details –

    We also provide basic DASH playback support in Flash through our OSMF player framework plugin. To get started with that player:

    1. Browse Strobe Media Playback and SS Plugin setup page.
    2. Set the src to the URL you got in step 16 for your DASH file.
    3. From plugins section select “Microsoft Adaptive Streaming Plugin” from the drop down menu.This will show the dynamic plugin URL.
    4. Click “Preview and Update” . This will bring preview player and start playback.

Please take our DASH preview streaming out for a test drive and provide us as much feedback as you can via our MSDN forum web site.

If you don’t currently have a Media Services account, or don’t have the time to walk through my steps above (totally understand), we have also hosted some DASH test streams that are coming from one of our test Origin servers in Azure and are being cached through our friends at Akamai (big thanks to Will Law for setting this up for the benefit of DASH).

First some warnings and credits.  The following test streams are being made available as a best effort by our team and they may not always be available or may change at any point. If they stop working for you on this page – sorry, I can’t guarantee the uptime.  If you need something more stable – follow the steps above in your own account.

These streams are using content that is Creative Commons Attribution 3.0 licensed by The (CC) Blender Foundation |

MPEG DASH TEST Streams (cached via Akamai)

Clear content:


Elephants Dream:

Big Buck Bunny:

Tears of Steel:


DASH/CSF+ Common Encryption (CENC) protected content
NOTE: PlayReady license header – only works on devices that support PlayReady decryption of DASH – i.e. TVs, SetTops, future browsers with EME support, etc…
720p, Baseline Profile:

1080p, High Profile:

Announcing Windows Azure Media Services .NET SDK source available on GitHub


This morning the Windows Azure Media Services SDK finished deploying the source code for our .NET SDK out onto GitHub.

This is a huge milestone for our team, as we have been working hard towards providing an open source version of our .NET SDK on GitHub for some time now. This is fantastic for our end customers now, since it gives you deeper insight into the SDK and how it works and allows you to fork the SDK directly and make modifications (some of you move faster that us!)

Key changes to this release of the SDK are outlined on this blog post from Mingfei Yan

Key features include:

    • Storage 2.0 client SDK support – this has been a major pain point for multiple customers.
    • Notifications API support – I will try to blog more on this feature, but essentially it provides you notifications on encoding job progress through an Azure Queue in your account.

This is the last version that we will support Storage client SDK 1.7, so please plan to migrate to Storage client 2.0.

We will also be updating the NuGet “official” release in the next week with a build from this same release on GitHub.

Going forward we will develop directly in GitHub first and release to NuGet at the end of each sprint. 

We are looking forward to your contributions on this Github project.

Mingfei Yan (@mingfeiy) is the lead PM for the .NET SDK, and George Trifonov (@GeorgeTrifonov) is the lead developer for this project and they will be monitoring feedback and commits.

For more information on developing for Media Services, please check out our developer page.

John Deutscher

Twitter – @johndeu

New Azure Media Services Blogs

I’ve been very busy traveling to the International Broadcaster’s Convention (IBC) in Amsterdam and delivering two fantastic Microsoft Media Platform Summits in both Amsterdam and Prague. Now that I’m back in the office again, it’s time to get back to updating folks on what is new and upcoming in Windows Azure Media Services this Fall and into next year.

We have been in Preview release for about 4 months now across 6 data centers and things are going amazingly well. Lots of great feedback and interest from around the globe. As we approach our first official general availability release later this Fall, we will be updating the Services SDK for .NET and our MSDN documentation with new sample code and scenarios.

Nick Drouin, one of the Program Managers on the Windows Azure Media Services, has just started up a new blog ( to post sample code and how-to articles around using various features of Media Services. Some of you may know Nick already from his work on IIS Transform Manager. This year he is responsible for many of our cool new features in Media Services such as Dynamic Remux – the ability to encode and store only a single set of standard MP4 multi-bitrate files and allow Media Services to dynamically serve out either Smooth Streaming or Apple HLS to client players. This feature will reduce your storage costs and simplify multi-screen and multi-format delivery. We will expand this feature to include MPEG-DASH support, as well as dynamic encryption for DRM in the future.

Check out the first set of articles that Nick has published on getting started with Media Services. He also is working on a post on how to use the Aspera On-Demand for Windows Azure that is now in beta on the Azure Marketplace.

Another feature that is coming soon is a set of updates to our Azure Portal experience to add even more support for Media Services directly in the Azure Portal. Keep an eye out for that later in the Fall.

As always, if you have any questions, please jump over to the Azure Forum for Media Services and post. I’m spending a lot more time over there answering questions lately. And if I miss a question due to my busy schedule, there are lots of knowledgeable folks on the team willing to help as well!

MPEG DASH: The File Format of the Future

Tim Siglin just published his coverage of the MPEG DASH session at Streaming Media West last week where the future of adaptive streaming file formats was discussed.  The article is titled “MPEG DASH: The File Format of the Future?” and can be found on the website.

I particularly like the coverage of HLS and the fact that the Apple draft that was submitted to the IETF is merely an “informational draft” and the fact that there are no efforts underway to standardize that draft spec. This is an often overlooked reality of the HLS specification and something that I am constantly educating customers on.

The push to move to interoperable international standards is only going to get stronger in the next few years.  Embracing an interoperable version of MPEG DASH for both live and on-demand streaming, one that is based on a common file format like fragmented-MP4 (CFF file format from Ultraviolet is a good candidate here), and embracing MPEG Common Encryption (CENC) will be the key to making interoperable media services work across devices and clouds.