Fundamentals of Azure Media Services

Media Services in a nutshell

Ingest Ingest operations bring assets into the system You need to upload assets before encrypting them so you can place them into Azure Storage
Encode Encode operations include encoding, transforming and converting media assets. You can use the Media Encoder to do this. You can encode to industry-leading IIS Smooth Streaming, MP4, and conversion to Apple HTTP Live Streaming.
Protect Protecting content means encrypting live streaming or on demand content for secure transport, storage, and delivery. Media Services provide a DRM technology-agnostic solution for protecting content. Currently supported DRM technologies are Microsoft PlayReady Protection and MPEG Common Encryption
Stream Streaming content involves sending it live or on demand to clients, or you can retrieve or download specific media files from the cloud. Media Services provide a format-agnostic solution for streaming content. Media Services provide streaming origin support for Smooth Streaming, Apple HTTP Live Streaming, and MP4 formats. You can also seamlessly deliver streaming content by using Azure CDN or a third-party CDN, which enables the option to scale to millions of users.

TERMINOLOGY

  1. Here is some vocabulary to get us started

ENCODE (OR COMPRESS)

  1. To convert for storage or transmission, particularly when the new file uses a lower data rate than the original, or a more lossy codec

TRANSCODE

  1. Conversion from one format to another of like or similar quality, typically performed to make the content compatible with another process or application

  2. Often involves a generational loss

TRANSSIZE

  1. Convert to a different resolution using the same format.

TRANSRATING

  1. Where you're converting a file to a different data rate using the same codec

  2. Example is converting the H.264 streams to a lower bitrate using the same codec

TRANSMUXING

  1. Where the server will change the container format, but not the underlying file

  2. Convert to a different container format without changing the file contents.

SUPPORTED DEVICES

  1. Client devices types including Windows, Android, and iOS PCs, tablets, smartphones, plus TV, game consoles

UPLOAD RAW VIDEO CONTENT EASILY

  1. Upload assets quickly with support for UDP or physically ship hard drives

  2. Encoding to multi-bitrate MP4 and delivering to all formats on the fly ? storing only single copy of your content.

  3. Support for CDNs

  4. token-based authentication and geo-blocking features

  5. Encrypted during upload and at rest in storage during playback with Microsoft PlayReady Digital Rights Management (DRM) or AES encryption

Register for a webinar for the 2014 Sochi Winter Olympics https://info.windowsazure.com/June2014LiveStreamingSochi-BenefitsofMovingMediaWorkflowstotheCloud__Register.html
Stream video to Windows, iOS, Android, and other devices using HTML5, Flash, or a custom player https://azure.microsoft.com/en-us/develop/media-services/developer-tools/#header-1
Build a Smooth Streaming Windows Store application https://azure.microsoft.com/en-us/documentation/articles/media-services-build-smooth-streaming-apps/#
How to: Create a Media Services account using Quick Create
An account will enable you to to store, encrypt, encode, manage, and stream media content in Azure
You will also want to create an associated storage account (or use an existing one) in the same geographic region as the Media Services account
The storage account provides blob storage for media files, and must be located in the same geographic region as the Media Services account
You can upload a video file to your storage account
A Media Services account does not store actual media content
Instead it stores metadata about the media content and media processing jobs in your account
https://azure.microsoft.com/en-us/documentation/articles/media-services-create-account/
How to: Deliver Apple HLS streaming content
This link shows how to create a locator to Apple HTTP Live Streaming (HLS) content on a Media Services origin server
Using this approach, you can build a URL to Apple HLS content, and provide it to Apple iOS devices for playback
You can use the resulting URL to play back the streaming content in an iOS device such as an iPad or an iPhone
https://azure.microsoft.com/en-us/documentation/articles/media-services-deliver-http-live-streaming-content/
How to: Deliver streaming content, Using adaptive bitrate streaming to deliver content
You can use adaptive bitrate streaming to deliver content
The example shows how to create an origin locator for an output asset produced by a job
The example assumes that you have already obtained a reference to an asset that contains smooth streaming files
https://azure.microsoft.com/en-us/documentation/articles/media-services-deliver-streaming-content/
Setting up your project Getting the Media Services server context Creating an asset and uploading files that are associated with the asset into Media Services Encoding an asset and downloading an output asset
This link introduces the basic Media Services workflow and the most common programming objects and tasks required for Media Services development
You will be able to play back a sample media file that you uploaded, encoded, and downloaded
You can also browse to the encoded asset and play it back on the server.
You will learn how to setup your project
You will learn how to get the Media Services server context
You will learn how to create an asset and upload files that are associated with the asset into Media Services
You will learn how to Encode an asset and downloading an output asset
You will install Azure SDK for .NET.
You will install WCF Data Services 5.0 for OData V3 libraries and add references to your project using the windowsazure.mediaservices Nuget package
You will learn about the Media Services context object
It contains all the fundamental objects and collections to access for Media Services programming
The context includes references to important collections including jobs, assets, files, access policies, locators, and other objects
In the Program.cs file, add the following code as the first item in your Main method. This code uses your Media Services account name and account key values from the app.config file to create an instance of the server context. The instance is assigned to the _context variable you created at the class level.
You will creating an Asset and Upload a File
You will learn about Common Encryption Protected (CENC) files
You will learn about storage encryption, which encrypts a clear input file before it is uploaded to Azure storage
You will learn about on-disk storage encryption, not over the wire like Digital Rights Manager (DRM)
You will learn about creating an AccessPolicy instance that defines the permissions and duration of access to the asset
You will learn about creating jobs that process media content in several ways: encoding, encrypting, doing format conversions, and so on
You will learn about the H264 Broadband 720p setting, which produces a single MP4 file
You will learn about tracking job progress and accessing the asset that your encoding job creates
You will learn about accessing the output assets that result from an encoding job
You will learn about the output asset files collection containing two files: the encoded media file (an .mp4 file), and an .xml file with metadata about the asset
https://azure.microsoft.com/en-us/documentation/articles/media-services-dotnet-get-started/
How to: Encode an Asset, Encoding to Smooth Streaming
You can encode the content with a number of media encodings and formats using Azure Media Encoder
You can also use an encoder provided by a Media Services partner
You can also use third-party encoders are available through the Azure Marketplace
You can specify the details of encoding tasks by using Encoder Preset strings, or by using configuration files.
Encryption can be achieve using the Azure Media Encryptor
To support encryption and smooth streaming, you can use the Microsoft Smooth Streaming files, which are encrypted per the MPEG Common Encryption (CENC) specification
https://azure.microsoft.com/en-us/documentation/articles/media-services-encode-asset/
Scale a Media Service
You can scale Media Services by specifying the number of On-Demand Streaming Reserved Units and Encoding Reserved Units
On-Demand Streaming reserved units provide you with both dedicated egress capacity that can be purchased in increments of 200 Mbps and additional functionality which currently includes dynamic packaging capabilities.
By default, on-demand streaming is configured in a shared-instance model for which server resources (for example, compute, egress capacity, etc.) are shared with all other users.
To improve an on-demand streaming throughput, it is recommended to purchase On-Demand Streaming reserved units
The number of provisioned encoding reserved units is equal to the number of media tasks that can be processed concurrently in a given account
https://azure.microsoft.com/en-us/documentation/articles/media-services-how-to-scale/#
Media Services libraries for Java ( windows | mac | linux ) https://azure.microsoft.com/en-us/documentation/articles/media-services-java-how-to-use/
View content information like published state, published URL, size, and datetime of last update, Upload new content, Encode content, Play content video, Publish/Unpublish content, Delete content, https://azure.microsoft.com/en-us/documentation/articles/media-services-manage-content/
Monitor the number of queued encoding jobs, failed encoding tasks, active encoding jobs represented by the input and output data from the encoder, as well as the blob storage usage associated with your Media Services account https://azure.microsoft.com/en-us/documentation/articles/media-services-monitor-services-account/
Monitor a Media Services Account https://azure.microsoft.com/en-us/documentation/articles/media-services-monitor-services-account/#
How to: Protect an Asset with PlayReady Protection, Converts the MP4 file into a Smooth Streaming asset, Encrypts the asset with PlayReady https://azure.microsoft.com/en-us/documentation/articles/media-services-protect-asset/
How to use the Azure Media Services iOS Media Player Framework https://azure.microsoft.com/en-us/documentation/articles/media-services-use-ios-media-player-framework/
Build an iOS video application https://azure.microsoft.com/en-us/documentation/articles/media-services-use-ios-media-player-framework/#
How to Use the Microsoft Smooth Streaming Plugin for the Adobe Open Source Media Framework https://azure.microsoft.com/en-us/documentation/articles/media-services-use-osmf-smooth-streaming-client-plugin/
Build an Adobe Flash player application using the Smooth Streaming OSMF plug-in https://azure.microsoft.com/en-us/documentation/articles/media-services-use-osmf-smooth-streaming-client-plugin/#
Encoder System Presets https://msdn.microsoft.com/en-us/library/jj129582.aspx
Powerful REST APIs to quickly build your solution https://msdn.microsoft.com/en-us/library/windowsazure/hh973617.aspx
Encode Content in Media Services https://msdn.microsoft.com/en-us/library/windowsazure/jj129574.aspx#
Get started with Media Services
Overall description of tooling
NuGet package to get the .NET server-side libraries for Azure Media Services
Download and install the Azure SDK for Java
Smooth Streaming Client SDK
Build a media player in Flash using OSMF
Smooth Streaming plugin for Open Source Media Framework 2.0 (OSMF) enables you to build applications in OSMF or Strobe Media Playback (SMP)
iOS media player framework
https://msdn.microsoft.com/en-us/library/windowsazure/jj129576.aspx#
Connect to Media Services https://msdn.microsoft.com/en-us/library/windowsazure/jj129576.aspx#
Deliver Apple HLS Content https://msdn.microsoft.com/en-us/library/windowsazure/jj129578.aspx#create_origin_URL_for_streaming
Deliver Content by Download https://msdn.microsoft.com/en-us/library/windowsazure/jj129578.aspx#create_SAS_URL_for_downloading
Securely Upload Content to Media Services https://msdn.microsoft.com/en-us/library/windowsazure/jj129593.aspx#
Bulk Upload Content to Media Services https://msdn.microsoft.com/en-us/library/windowsazure/jj853021.aspx#
Ingesting Assets in Bulk with the Media Services SDK for .NET https://msdn.microsoft.com/library/azure/jj853022.aspx
Media Services libraries for .NET - Based on NuGet https://nuget.org/packages/windowsazure.mediaservices