Azure Media Services Overview
Updated: June 19, 2014
Microsoft Azure Media Services Azure Media Services allows you to build scalable, cost effective, end-to-end media distribution solutions that can upload, encode, package, and stream media to iOS, Android, Adobe Flash, Windows, and other devices and platforms.
The following poster depicts the workflow for Azure Media Services, from media creation through consumption. You can download the poster from here: Azure Media Services poster.
Media Services offers the flexibility, scalability and reliability of a cloud platform to handle high quality media experiences for a global audience. Media Services includes cloud-based versions of many existing technologies from the Microsoft Media Platform and our media partners, including uploading, encoding, format conversion, content protection and both on-demand and live streaming capabilities. Whether enhancing existing solutions or creating new workflows, you can easily combine and manage Media Services to create custom workflows that fit every need.
To learn more about Media Services read through this document or skip to the Getting Started with Azure Media Services topic.
Service Level Agreement (SLA)
We guarantee 99.9% availability of REST API transactions for Media Services Encoding. On-Demand Streaming will successfully service requests with a 99.9% availability guarantee for existing media content when at least one On-Demand Streaming Reserved Unit is purchased. Availability is calculated over a monthly billing cycle. For more information, download the SLA document.
In order to encode, manage, and stream your videos, you must first upload your content into Azure Media Services. Media Services uses Azure Storage to store your media for processing and streaming. You can programmatically upload your content using the Media Services REST API or one of the available client SDKs. These API allow for uploading one file at a time or bulk upload operations. Azure Media Services also provides for secure uploading of your content. Storage encryption encrypts your content locally and then uploads it to Azure Storage where it will be stored in an encrypted form. You can also take advantage of third-party fast upload providers like Aspera. For more information on encoding, see Uploading Media.
Encoding and packaging media
The following blog explains the difference between encoding and packaging: Encoding versus Packaging.
Encoding is the process of taking a video and compressing it into a format that can be consumed by your customers. Your customers may be using any number of devices to watch your videos: PC's, Mac’s, smart phones, tablets, XBox consoles, set-top boxes, or connected TVs. Each of these devices has features that affect the encoding needed. Smart phones have small screens and little storage, tablets have larger screens but less storage space when compared with PC and so on. If you have not already decided what device or devices you are targeting, see Choosing Your Media Experience. When choosing the encoding for a video, keep in mind all of the devices your customers will use. In some cases you may want to have multiple encodings to enable the best possible experience on a range of devices. For more information on encoding, see Encoding Media with Media Services
Formats Supported by the Media Services Encoder
The following document contains a list of the most common import and export file formats that you can use with Azure Media Encoder: Formats Supported by the Media Services Encoder.
Packaging media (static and dynamic)
Once a video has been encoded it can be placed into many different file containers. The process of placing encoded media into a container is called packaging. For example, you can take an MP4 file and convert it into Smooth Streaming or HLS content by using the Azure Media Packager. The packager will place the encoded content into a different file container. For more information, see Encoding versus Packaging.
Media Services supports dynamic and static packaging. When using static packaging you need to create a copy of your content in each format required by your customers. With dynamic packaging all you need is to create an asset that contains a set of multi-bitrate MP4 files. Then, based on the specified format in the manifest or fragment request, the On-Demand Streaming server will ensure that your clients receive the stream in the protocol they have chosen. As a result, you only need to store and pay for the files in single storage format and Media Services service will build and serve the appropriate response based on requests from a client.
It is recommended to use dynamic packaging. However, there are some scenarios that currently require the use of static packaging. For example: Validating Adaptive Bitrate MP4s Encoded with External Encoders
For information, see Dynamic Packaging.
Streaming media is delivered to the client player application in small chunks. When encoding for a streaming format, the encoder breaks up the content into small chunks. The size of the chunks and how they are stored vary by streaming technology. When a client starts playing a video it can download the first chunk and display it quickly. After the player displays a chunk, it requests the next chunk from the server. Media Services supports a number of different streaming technologies:
Progressive Download - allows you to start playing media before the entire file has been downloaded
MPEG DASH is an international standard adaptive bitrate streaming protocol developed by the Motion Picture Experts Group (MPEG)
HTTP Live Streaming or HLS, is an adaptive bitrate streaming technology developed by Apple
Smooth Streaming is an adaptive bitrate streaming technology developed by Microsoft
Adaptive bitrate streaming
Adaptive bitrate streaming involves encoding a video into a number of different bitrates. When a player application is playing a video it can determine network bandwidth on the fly and switch to a higher or lower bandwidth chunk as network conditions change. This allows clients to receive the highest quality video when network conditions allow and when network conditions degrade the player can still play the view (although at a lower quality). Azure Media Services support streaming media using HTTP Live Streaming (HLS), MPEG-DASH, and Smooth Streaming.
Media Services enables you to protect your media in a number of ways. You can upload your media using Storage Encryption. This protects your content while being uploaded into Media Services as well as when it is at rest in Storage. Media stored in this manner must be unencrypted prior to any processing for example, encoding, packaging, and streaming. At each step in the processing pipeline you have the ability to specify encryption options by passing parameters to the media processor being used (encoder, packager, and encryptor). Media services supports PlayReady DRM and AES 128-bit Envelope Encryption to protect content while streaming. For more information, see Securing Media.
Common Media Services scenarios
The two main scenarios supported by Media Services are Video on Demand (VOD) and Live streaming . Whether you want to stream your content live or on demand, you need players that can consume this content. For more information, see Building client applications.
Video on Demand (VOD)
This section gives an overview of a common VOD workflow.
Connect to Media Services.
Upload a high-quality mezzanine file. For more information, see Uploading Media.
Optionally, storage encrypt the content before uploading. For more information, see Producing Storage Encrypted Content.
If you already have encrypted content and want to upload it, see Uploading Encrypted Content.
Encode and package. It is recommended to encode your mezzanine file to adaptive bitrate files. For example, use Azure Media Services encoder to encode to H264 Adaptive Bitrate MP4 Set. See the list of all “H264 Adaptive Bitrate MP4 Set” presets in Media Services Encoder System Presets. See examples written in .NET and REST under the Creating Encoding Jobs topic.
If you want to use a set of adaptive bitrate (multi-bitrate) MP4 files that were not encoded with the Media Services encoder, you should validate your files before further processing. For more information, see Validating Adaptive Bitrate MP4s Encoded with External Encoders topic.
It is recommended to use dynamic packaging to deliver your content. For more information and requirements, see Dynamic Packaging.
Deliver your content in any of the following formats: DASH/CSF, Smooth Streaming, HLS v3 or v4, HDS (available for Adobe PrimeTime/Access licensees only). For more information, see Delivering Content.
If you want to protect your content before delivering it to your customers, use dynamic encryption with dynamic packaging. See the following topics for more information: Using AES-128 Dynamic Encryption and Key Delivery Service, Using PlayReady Dynamic Encryption and License Delivery Service, Delivering Storage Encrypted Content.
This section gives an overview of a common Live streaming workflow.
Connect to Media Services.
Create and start a channel.
Retrieve the channel ingest URL.
Start and configure the live transcoder of your choice.
Every time you reconfigure the transcoder, call Reset on the channel.
Retrieve the channel’s Preview endpoint and verify that your channel is properly receiving the live stream.
Create a program and asset.
To make the stream available to users, create a streaming locator needed to access the asset associate with the program.
Start the program when you are ready to start streaming and archiving.
Stop the program whenever you want to stop streaming and archiving the event.
Delete the Program (and optionally delete the asset).
If you do want to retain the archived content, but not have it available for streaming, delete the streaming locator.
For a more detailed explanation, see Working with Azure Media Services Live Streaming.
Building client applications
Azure Media Services provides the tools you need to create rich, dynamic client player applications for most platforms including: iOS Devices, Android Devices, Windows, Windows Phone, Xbox, and Set-top boxes
Client Ecosystem for Azure Media Services
Smooth Streaming Client SDK
Microsoft Media Platform: Player Framework
HTML5 Player Framework Documentation
Microsoft Smooth Streaming Plugin for OSMF
Media Player Framework for iOS
Licensing Microsoft® Smooth Streaming Client Porting Kit
Building Video Applications on Windows 8
XBOX Video Application Development
For more information see Developing Video Player Applications