Azure Media Services overview and common scenarios
Microsoft Azure Media Services is an extensible cloud-based platform that enables developers to build scalable media management and delivery applications. Media Services is based on REST APIs that enable you to securely upload, store, encode and package video or audio content for both on-demand and live streaming delivery to various clients (for example, TV, PC, and mobile devices).
You can build end-to-end workflows using entirely Media Services. You can also choose to use third-party components for some parts of your workflow. For example, encode using a third-party encoder. Then, upload, protect, package, deliver using Media Services.
You can choose to stream your content live or deliver content on demand. This topic shows common scenarios for delivering your content live or on demand. The topic also links to other relevant topics.
To build Media Services solutions, you can use:
- Media Services REST API
- One of the available client SDKs:
- Azure Media Services SDK for .NET,
- Azure SDK for Java,
- Azure PHP SDK,
- Azure Media Services for Node.js (This is a non-Microsoft version of a Node.js SDK. It is maintained by a community and currently does not have a 100% coverage of the AMS APIs).
- Existing tools:
- Azure Classic Portal
- Azure-Media-Services-Explorer (Azure Media Services Explorer (AMSE) is a Winforms/C# application for Windows)
You can view AMS learning paths here:
To start using Azure Media Services, you should have the following:
- An Azure account. If you don't have an account, you can create a free trial account in just a couple of minutes. For details, see Azure Free Trial.
- An Azure Media Services account. Use the Azure Classic Portal, .NET, or REST API to create Azure Media Services account. For more information, see Create Account.
- (Optional) Set up development environment. Choose .NET or REST API for your development environment. For more information, see Set up environment.
Also, learn how to connect programmatically Connect. 4. (Recommended) Allocate one or more scale units. It is recommended to allocate one or more scale units for applications in production environment. For more information, see Managing streaming endpoints.
For Azure Media Services concepts, see Concepts.
For a how-to series that introduces you to all the main components of Azure Media Services, see Azure Media Services Step-by-Step tutorials. This series has a great overview of concepts and it uses the AMSE tool to demonstrate AMS tasks. Note that AMSE tool is a Windows tool. This tool supports most of the tasks you can achieve programmatically with AMS SDK for .NET, Azure SDK for Java, or Azure PHP SDK.
This section describes common scenarios and provides links to relevant topics. The following diagram shows the major parts of the Media Services platform that are involved in delivering content on demand.
Upload a high-quality mezzanine file into an asset.
It is recommended to apply storage encryption option to your asset in order to protect your content during upload and while at rest in storage.
Encode to a set of adaptive bitrate MP4 files.
It is recommended to apply storage encryption option to the output asset in order to protect your content at rest.
Configure asset delivery policy (used by dynamic packaging).
If your asset is storage encrypted, you must configure asset delivery policy.
Publish the asset by creating an OnDemand locator.
Make sure to have at least one streaming reserved unit on the streaming endpoint from which you want to stream content.
Stream published content.
To be able to use dynamic encryption, you must first get at least one streaming reserved unit on the streaming endpoint from which you want to stream encrypted content.
- Upload a high-quality mezzanine file into an asset. Apply storage encryption option to the asset.
- Encode to a set of adaptive bitrate MP4 files. Apply storage encryption option to the output asset.
- Create encryption content key for the asset you want to be dynamically encrypted during playback.
- Configure content key authorization policy.
- Configure asset delivery policy (used by dynamic packaging and dynamic encryption).
- Publish the asset by creating an OnDemand locator.
- Stream published content.
Media Analytics is a collection of speech and vision components that make it easier for organizations and enterprises to derive actionable insights from their video files. For more information, see Azure Media Services Analytics Overview.
- Upload a high-quality mezzanine file into an asset.
Use one of the following Media Analytics services to process your videos:
- Indexer – Process videos with Azure Media Indexer 2
- Hyperlapse – Hyperlapse Media Files with Azure Media Hyperlapse
- Motion detection – Motion Detection for Azure Media Analytics.
- Face detection and Face emotions – Face and Emotion Detection for Azure Media Analytics.
- Video summarization – Use Azure Media Video Thumbnails to Create a Video Summarization
Media Analytics media processors produce MP4 files or JSON files. If a media processor produced an MP4 file, you can progressively download the file. If a media processor produced a JSON file, you can download the file from the Azure blob storage.
- Upload a high-quality mezzanine file into an asset.
- Encode to a single MP4 file.
Publish the asset by creating an OnDemand or SAS locator.
If using OnDemand locator, make sure to have at least one streaming reserved unit on the streaming endpoint from which you plan to progressively download content.
If using SAS locator, the content is downloaded from the Azure blob storage. In this case, you do not need to have streaming reserved units.
Progressively download content.
When working with Live Streaming the following components are commonly involved:
- A camera that is used to broadcast an event.
- A live video encoder that converts signals from the camera to streams that are sent to a live streaming service.
Optionally, multiple live time synchronized encoders. For certain critical live events that demand very high availability and quality of experience, it is recommended to employ active-active redundant encoders with time synchronizationto achieve seamless failover with no data loss. - A live streaming service that enables you to do the following:
- ingest live content using various live streaming protocols (for example RTMP or Smooth Streaming),
- (optionally) encode your stream into adaptive bitrate stream
- preview your live stream,
- record and store the ingested content in order to be streamed later (Video-on-Demand)
- deliver the content through common streaming protocols (for example, MPEG DASH, Smooth, HLS, HDS) directly to your customers, or to a Content Delivery Network (CDN) for further distribution.
Microsoft Azure Media Services (AMS) provides the ability to ingest, encode, preview, store, and deliver your live streaming content.
When delivering your content to customers your goal is to deliver a high quality video to various devices under different network conditions. To take care of quality and network conditions, use live encoders to encode your stream to multi-bitrate (adaptive bitrate) video stream. To take care of streaming on different devices, use Media Services dynamic packaging to dynamically re-package your stream to different protocols. Media Services supports delivery of the following adaptive bitrate streaming technologies: HTTP Live Streaming (HLS), Smooth Streaming, MPEG DASH, and HDS (for Adobe PrimeTime/Access licensees only).
In Azure Media Services, Channels, Programs, and StreamingEndpoints handle all the live streaming functionalities including ingest, formatting, DVR, security, scalability and redundancy.
A Channel represents a pipeline for processing live streaming content. A Channel can receive a live input streams in the following ways:
- An on-premises live encoder sends multi-bitrate RTMP or Smooth Streaming (fragmented MP4) to the Channel that is configured for pass-through delivery. The pass-through delivery is when the ingested streams pass through Channels without any further processing. You can use the following live encoders that output multi-bitrate Smooth Streaming: Elemental, Envivio, Cisco. The following live encoders output RTMP: Adobe Flash Live, Telestream Wirecast, and Tricaster transcoders. A live encoder can also send a single bitrate stream to a channel that is not enabled for live encoding, but that is not recommended. When requested, Media Services delivers the stream to customers.
Using a pass-through method is the most economical way to do live streaming when you are doing multiple events over a long period of time, and you have already invested in on-premises encoders. See pricing details.
- An on-premises live encoder sends a single-bitrate stream to the Channel that is enabled to perform live encoding with Media Services in one of the following formats: RTP (MPEG-TS), RTMP, or Smooth Streaming (Fragmented MP4). The Channel then performs live encoding of the incoming single bitrate stream to a multi-bitrate (adaptive) video stream. When requested, Media Services delivers the stream to customers.
Working with Channels that receive multi-bitrate live stream from on-premises encoders (pass-through)
The following diagram shows the major parts of the AMS platform that are involved in the pass-through workflow.
For more information, see Working with Channels that Receive Multi-bitrate Live Stream from On-premises Encoders.
The following diagram shows the major parts of the AMS platform that are involved in Live Streaming workflow where a Channel is enabled to perform live encoding with Media Services.
For more information, see Working with Channels that are Enabled to Perform Live Encoding with Azure Media Services.
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. The following topic provides links to SDKs and Player Frameworks that you can use to develop your own client applications that can consume streaming media from Media Services.
Media Services supports integration with Azure CDN. For information on how to enable Azure CDN, see How to Manage Streaming Endpoints in a Media Services Account.
You can scale Media Services by specifying the number of Streaming Reserved Units and Encoding Reserved Units that you would like your account to be provisioned with.
You can also scale your Media Services account by adding storage accounts to it. Each storage account is limited to 500 TB. To expand your storage beyond the default limitations, you can choose to attach multiple storage accounts to a single Media Services account.
This topic links to relevant topics.
Azure Support provides support options for Azure, including Media Services.
Use the User Voice forum to provide feedback and make suggestions on how to improve Azure Media Services. You can also go directly to one of the following categories:
- Azure Media Player
- Client SDK libraries
- Encoding and processing
- Live streaming
- Media analytics
- Azure Portal
- REST API and platform
- VoD streaming
- For Media Services Encoding, we guarantee 99.9% availability of REST API transactions.
- For Streaming, we will successfully service requests with a 99.9% availability guarantee for existing media content when at least one Streaming Unit is purchased.
- For Live Channels, we guarantee that running Channels will have external connectivity at least 99.9% of the time.
- For Content Protection, we guarantee that we will successfully fulfill key requests at least 99.9% of the time.
- For Indexer, we will successfully service Indexer Task requests processed with an Encoding Reserved Unit 99.9% of the time.
For more information, see Microsoft Azure SLA.