Windows Azure Media Service – Overview
A new service for Windows Azure has been launched. It is called Windows Azure Media Services and it allows us to offer media solutions using Windows Azure. This was also possible until now, but it was necessary to implement the entire process, from stream uploads, to encoding and so on.
Microsoft is offering this service free of charge. Well, not exactly free of charge. The media service does not have to be paid for. What we pay for is the space taken up on the cloud, stream processing and traffic. This service actually offers us an API which helps us manipulate media elements (audio and video).
Windows Azure Media Service is only available as a Developer Preview version, but it won’t be long until this service will be made available in its final version. This service is supported by countless platforms, from Windows (including W8) systems, to Mac, Xbox, Windows Phone, Android, WCE.
How Can We Use the Service?
First of all it enables us to encode media streams in different formats. Some of the formats are: AAC-LC, H.264, VC-1, MP4, Apple Live Stream, PIFF.
The good thing is that the service is well thought out and easy to extend. For example you can implement your own encoding mechanism at any time. There is also support for third-party encoders, such as Ateme or Digital Rapids. These services will be available through Windows Azure Marketplace.
Besides the encoding part, this service allows us to offer media streaming LIVE as well as offline. What I thought was interesting is the DVR integration and the way in which it is scalable when you are LIVE so that you can stream to a large number of consumers. By using Windows Azure CDNs, the content of a stream can be easily sent to all consumers. A new feature is the integration with other CDNs, not just Microsoft ones.
As far as protection goes, Windows Azure supports stream encryption using Microsoft PlayReady and MPEG Common Encryption. As is the case with encoding, we can also use third-party solutions.
There are several types of entities Media Services works with using the REST format. You can find a list with the most important ones below:
- File – a media file (audio, video) stored as a blob object
- Asser – metadata belonging to one or several media files. It can contain any type of data, from the name of a song to information about the record label
- Task – it is an operation which can be executed on a File or an Assert (enconding, streaming etc)
- Job – creation, deletion operations for a File or an Assert. It can contain one or several tasks
- Locator – It is an URI generated automatically based on which access to a certain resource can be offered over a limited period of time
- Access Policy – information about access to a media resource (who/where/when)
All these operations can be done using a rest API. The workflow for this service defines four types of operations:
- Ingest – the first step when we want to add media content. This step contains the upload and content encryption parts.
- Process – this step contains tasks such as encoding, conversion and media content transformation
- Manage – operations for the already existing asserts (edit, delete, setup)
- Deliver – streaming for content we already have (live as well as offline) directly to the user as well as to CDNs
Because the API is formatted in REST it is easy to use. I have played around with the service a little bit, but I will avoid examples of code at this time, not until we have a final version.
As a conclusion, Windows Media Service promises a lot. It will make our lives easier when we have to work with a media stream. We can easily scale our applications together with Windows Azure in order to offer media to our users.
I will return with more information about this subject later on.