|

|  How to Access Microsoft Azure Media Services API in C#

How to Access Microsoft Azure Media Services API in C#

October 31, 2024

Learn how to access the Microsoft Azure Media Services API in C# with our comprehensive guide. Perfect for developers looking to integrate media solutions.

How to Access Microsoft Azure Media Services API in C#

 

Prerequisites

 

  • Ensure you have installed the Azure Media Services SDK for .NET. This is important for interacting with Azure Media Services API effectively using C#.
  •  

  • Ensure you have all the necessary authentication details such as Tenant ID, Client ID, Client Secret, and Subscription ID.

 

Setting Up the Development Environment

 

  • Make sure to include references to Azure.Identity and Azure.Media.Services.CloudMediaContext libraries in your project for authentication and API management.
  •  

  • These libraries help in handling OAuth2 authentication and provide classes and methods to work with Azure Media Services.

 

Authenticating and Creating a Media Services Client

 

In order to work with Media Services, first authenticate and create a client.

 

using Azure.Identity;
using Azure.ResourceManager.Media;
using Azure.ResourceManager;
using Azure.ResourceManager.Media.Models;

// Authentication
var defaultAzureCredential = new DefaultAzureCredential();

// Create a Media Services Client
var armClient = new ArmClient(defaultAzureCredential);

// Use the subscription ID
var subscription = armClient.GetSubscriptionResource("<your-subscription-id>");
var mediaServices = subscription.GetMediaServices();

 

Accessing Media Assets

 

Once authenticated, navigate and manage assets in Azure Media Services:

 

var mediaService = await mediaServices.GetMediaServiceAsync("<resource-group-name>", "<account-name>");

// List media assets
await foreach (var asset in mediaService.Value.GetAssets())
{
    Console.WriteLine(asset.Data.Name);
}

 

Creating and Managing Assets

 

To create an asset:

 

var assetContainer = mediaService.Value.GetAssets();
var asset = await assetContainer.CreateOrUpdateAsync(WaitUntil.Completed, "<asset-name>", new MediaAssetData());
Console.WriteLine($"Asset created with name: {asset.Value.Data.Name}");

 

Uploading Files to an Asset

 

To upload files to the media asset:

 

var assetName = "<asset-name>";
var containerSasUrl = asset.Value.GetStreamingLocatorsUri(0).AbsoluteUri;

// Use Azure.Storage.Blobs to upload files
BlobContainerClient containerClient = new BlobContainerClient(new Uri(containerSasUrl));

// Upload a file to the container
BlobClient blobClient = containerClient.GetBlobClient("filename.mp4");
await blobClient.UploadAsync("path/to/local/file.mp4", true);

 

Encoding the Media

 

To encode a media file:

 

var transformation = await mediaService.Value.GetTransformations().CreateOrUpdateAsync(
    WaitUntil.Completed,
    "AdaptiveH264Transform",
    new MediaTransformerData()
    {
        Outputs = { new MediaOutput(PredefinedLowStandardEncoderPreset.AdaptiveStreaming) }
    });

Console.WriteLine("Transform created.");

// Start encoding
var jobName = "encoding-job";
var job = await mediaService.Value.GetJobs().CreateOrUpdateAsync(WaitUntil.Completed,
    transformation.Value.Data.Name, jobName, new MediaJobData());

Console.WriteLine($"Job started: {job.Value.Data.Name}");

 

Conclusion

 

  • This guide demonstrates how to access and manage Microsoft Azure Media Services using C#. It involves authentication, asset management, file uploading, and media encoding.
  • For more comprehensive and advanced tasks, refer to the Azure Media Services documentation.