Free trial *Internet Service Required

Media Services

The cloud platform for managing and distributing media to any screen, anywhere.

Video-on-demand

Windows Azure Media Services allows you to build a media distribution solution that can stream audio and video to Windows, iOS, Android, and other devices and platforms.

Easy // It's a Platform as a Service offering that's easy to set up and scale.

Powerfull // You control all aspects of this service via REST APIs or .NET and Java SDKs.

Flexible // Pick and choose from pre-built Microsoft and 3rd party components for upload, encoding, DRM, and CDN.

VOD Demo

Fast, secure upload.

Securely upload and ingest content into Windows Azure Media Services through a variety of different ways. Use REST APIs to create assets and upload videos to the server over HTTP/S or bulk upload thousands of videos using the Bulk Ingest .NET Library or Aspera's fast UDP upload at speeds 100X faster than FTP or HTTP. Once file upload to the blob container is complete, Windows Azure Media Services automatically completes the asset creation.

Select a demo video to encode:

code peek

All platforms and devices.

Encode your videos to all major codecs you care about including support for multi-bitrate MP4, HLS, Smooth Streaming, HDS, and WMV. Build your video solution with confidence on Windows Azure Media Services knowing that your videos will reach your end users in the format that's right for their device. Use the Windows Azure Media Encoder or pick your favorite encoding partner. Partner encoders are completely integrated into the Windows Azure Media Services platform, including billing.

code peek

Packaging and streaming that saves.

Use dynamic packaging to save on storage and processing costs. Traditionally, once content has been encoded, it needs to be packaged and stored in multiple formats for different client such as iOS, XBox, PC, etc. This process triples storage requirements and adds processing cost. With Media Services, dynamic packaging allows you to store your content in a single file format. When the video is requested by your end users, it's packaged and converted to the appropriate format in real-time.

code peek

Custom players and frameworks.

With a large set of client player SDKs and frameworks for all major devices and platforms, you can reach any device and build a custom player experience that uniquely fits into your product or service.

Scan the QR code to play this video on your smartphone or tablet.

static private IAsset CreateEmptyAsset(string assetName, AssetCreationOptions assetCreationOptions)
{
    var asset = _context.Assets.Create(assetName, assetCreationOptions);

    Console.WriteLine("Asset name: " + asset.Name);
    Console.WriteLine("Time created: " + asset.Created.Date.ToString());

    return asset;
}

static public IAsset CreateAssetAndUploadSingleFile(AssetCreationOptions assetCreationOptions, string singleFilePath)
{
    var assetName = "UploadSingleFile_" + DateTime.UtcNow.ToString();
    var asset = CreateEmptyAsset(assetName, assetCreationOptions);

    var fileName = Path.GetFileName(singleFilePath);

    var assetFile = asset.AssetFiles.Create(fileName);

    Console.WriteLine("Created assetFile {0}", assetFile.Name);

    var accessPolicy = _context.AccessPolicies.Create(assetName, TimeSpan.FromDays(3),
                                                        AccessPermissions.Write | AccessPermissions.List);

    var locator = _context.Locators.CreateLocator(LocatorType.Sas, asset, accessPolicy);

    Console.WriteLine("Upload {0}", assetFile.Name);

    assetFile.Upload(singleFilePath);
    Console.WriteLine("Done uploading of {0} using Upload()", assetFile.Name);

    locator.Delete();
    accessPolicy.Delete();

    return asset;
}
static IJob CreateEncodingJob(string inputMediaFilePath, string outputFolder)
{
    //Create an encrypted asset and upload to storage. 
    IAsset asset = CreateAssetAndUploadSingleFile(AssetCreationOptions.StorageEncrypted, inputMediaFilePath);

    // Declare a new job.
    IJob job = _context.Jobs.Create("My encoding job");
    // Get a media processor reference, and pass to it the name of the 
    // processor to use for the specific task.
    IMediaProcessor processor = GetLatestMediaProcessorByName("Windows Azure Media Encoder");

    // Create a task with the encoding details, using a string preset.
    ITask task = job.Tasks.AddNew("My encoding task",
        processor,
        "H264 Broadband 720p",
        _protectedConfig);
    // Specify the input asset to be encoded.
    task.InputAssets.Add(asset);
    // Add an output asset to contain the results of the job. 
    // This output is specified as AssetCreationOptions.None, which 
    // means the output asset is in the clear (unencrypted). 
    task.OutputAssets.AddNew("Output asset",
        AssetCreationOptions.None);

    // Use the following event handler to check job progress. 
    job.StateChanged += new
            EventHandler<JobStateChangedEventArgs>(StateChanged);

    // Launch the job.
    job.Submit();

    // Optionally log job details. This displays basic job details
    // to the console and saves them to a JobDetails-{JobId}.txt file 
    // in your output folder.
    LogJobDetails(job.Id);

    // Check job execution and wait for job to finish. 
    Task progressJobTask = job.GetExecutionProgressTask(CancellationToken.None);
    progressJobTask.Wait();


    // If job state is Error, the event handling 
    // method for job progress should log errors. Here we check 
    // for error state and exit if needed.
    if (job.State == JobState.Error)
    {
        Console.WriteLine("\nExiting method due to job error.");
        return job;
    }
    // Perform other tasks. For example, access the assets that are the output of a job, 
    // either by creating URLs to the asset on the server, or by downloading. 

    return job;
}
private static ILocator GetStreamingOriginLocator( string targetAssetID)
{
    // Get a reference to the asset you want to stream.
    IAsset assetToStream = GetAsset(targetAssetID);

    // Get a reference to the streaming manifest file from the 
    // collection of files in the asset. 
    var theManifest =
                        from f in assetToStream.AssetFiles
                        where f.Name.EndsWith(".ism")
                        select f;
    // Cast the reference to a true IAssetFile type. 
    IAssetFile manifestFile = theManifest.First();
    IAccessPolicy policy = null;
    ILocator originLocator = null;

    // Create a 30-day readonly access policy. 
    policy = _context.AccessPolicies.Create("Streaming policy",
        TimeSpan.FromDays(30),
        AccessPermissions.Read);

    // Create a locator to the streaming content on an origin. 
    originLocator = _context.Locators.CreateLocator(LocatorType.OnDemandOrigin, assetToStream,
        policy,
        DateTime.UtcNow.AddMinutes(-5));

    // Display some useful values based on the locator.
    // Display the base path to the streaming asset on the origin server.
    Console.WriteLine("Streaming asset base path on origin: ");
    Console.WriteLine(originLocator.Path);
    Console.WriteLine();
    // Create a full URL to the manifest file. Use this for playback
    // in streaming media clients. 
    string urlForClientStreaming = originLocator.Path + manifestFile.Name + "/manifest";
    Console.WriteLine("URL to manifest for client streaming: ");
    Console.WriteLine(urlForClientStreaming);
    Console.WriteLine();
    // Display the ID of the origin locator, the access policy, and the asset.
    Console.WriteLine("Origin locator Id: " + originLocator.Id);
    Console.WriteLine("Access policy Id: " + policy.Id);
    Console.WriteLine("Streaming asset Id: " + assetToStream.Id);

    // Return the locator. 
    return originLocator;
}

Live streaming

Deltatre and Windows Azure Media Services stream the London 2012 Olympic Games.

 

Why use Windows Azure Media Services?

Fast development and rollout // Quickly and easily build end-to-end media workflows that reach a global audience. No worries about sophisticated infrastructure or writing complex plumbing code. Because it’s a Platform as a Service (PaaS) offering, there’s less work for developers which means you get from idea to availability much faster.

Modular and extensible // Unlike any other media service, you can pick and choose from pre-built Microsoft and 3rd party components to create your end-end media workflows. REST APIs allow you to leverage your existing development languages and toolsets such as .NET and Java.

Any screen, anywhere // Publish once and stream media using adaptive streaming to all devices and platforms you care about (web, Windows, Mac OS, iOS, Android, IPTVs, game consoles, and other devices). Adaptive and progressive streaming ensures content consumers get the best possible audio and video experience under any network condition.

Features

Upload // Quickly upload assets using HTTP or a fast upload service such as Aspera.

Encode // Encode assets using a range of standard codecs, including popular adaptive bitrate formats.

Protect // Store and deliver your content securely using Microsoft PlayReady DRM or Apple AES Encryption.

Convert // Convert your content from one format to another compatible format without re-encoding.

Deliver // Deliver a fast, smooth, and adaptive experience to users while leveraging format conversion on the fly.

Ads // Integrate targeted linear or overlay advertisements into your content.

Reach // Enable your users to consume content on any device and any network, using the format best suited for that device.

Consume // Build custom, rich clients and playback experiences on all major devices and platforms.

How-to videos and guides

Getting started with Windows Azure Media Services // Learn to build a simple end-to-end workflow in Windows Azure Media Services

Developing with Windows Azure Media Services // This guide shows you how to start programming with Media Services

Encode once and deliver multiple formats // This guide shows you how to encode content to a single format and use real-time packaging to output multiple formats

Building a Flash video player // This guide shows you how to build a Smooth Streaming Flash player that consumes content from Media Services

Building an iOS video application // This guide shows you how to build an iOS application that consumes HTTP Live Streaming from Media Services

Blog Spotlight

rss feed
Rss Newsletter