Setting up an Azure Blob Storage Output

Overview

Azure Blob Storage is a scalable object storage service provided by Microsoft Azure. Bitmovin's Encoding API supports Azure Blob Storage as an output destination, allowing you to write encoded media files directly to your Azure containers.

This guide shows you how to configure an Azure Blob Storage output for use with Bitmovin encodings.

IMPORTANT: This tutorial assumes you already have an Azure Storage Account and a Blob container created. If you don't have these set up yet, please refer to Microsoft's Azure documentation to create them first.


Prerequisites

Before creating a Bitmovin Azure Blob Storage output, you need to gather the following information from your Azure portal:

  • Storage Account Name (e.g., 'mystorageaccount')
  • Container Name (e.g., 'myoutputcontainer')
  • Account Key (primary or secondary access key from your storage account)

To find these in the Azure portal:

  1. Navigate to your Storage Account
  2. For Account Name: visible at the top of the storage account overview
  3. For Container Name: go to 'Containers' in the left menu
  4. For Account Key: go to 'Access keys' in the left menu under 'Security + networking'

Create a Bitmovin Azure Blob Storage Output

To create a Bitmovin Azure Output configuration that can be used by the encoding service, you need the Storage Account Name, Container Name, and Account Key.

Use the Dashboard UI

  1. Select the 'Encoding' menu on the left and go to 'Outputs'
  2. Click on 'Create' in the upper right corner of the Outputs overview
  3. Select 'Azure' as Output type
  4. Enter all required fields:
    • Name: A descriptive name for this output
    • Account Name: Your Azure storage account name
    • Container: Your blob container name
    • Account Key: Your storage account access key
  5. Click on 'Create'

Use a Bitmovin API SDK

Each of our Open API SDKs implements the Bitmovin API, making it easy to integrate with your project. Use them to create reusable output resources for your encodings:

Bitmovin API SDK - Output example

AzureOutput output = new AzureOutput();
output.setAccountName(AZURE_STORAGE_ACCOUNT_NAME);
output.setContainer(AZURE_CONTAINER_NAME);
output.setAccountKey(AZURE_ACCOUNT_KEY);
output = bitmovinApi.encoding.outputs.azure.create(output);
from bitmovin_api_sdk import BitmovinApi, AzureOutput

bitmovin_api = BitmovinApi(api_key='YOUR_BITMOVIN_API_KEY')

def create_azure_output(storage_account_name, container_name, account_key):
    azure_output = AzureOutput(
        name=storage_account_name,
        account_name=storage_account_name,
        container=container_name,
        account_key=account_key
    )
    return bitmovin_api.encoding.outputs.azure.create(azure_output)

# Usage
azure_output = create_azure_output(
    storage_account_name='mystorageaccount',
    container_name='my-output-container',
    account_key='YOUR_ACCOUNT_KEY'
)

See all available examples for each of our Bitmovin API SDKs in our GitHub Example Repository.


Using the Output in an Encoding

Once the output is created, reference it when defining muxing output paths:

from bitmovin_api_sdk import EncodingOutput

encoding_output = EncodingOutput(
    output_id=azure_output.id,
    output_path='/my-encoding-job/output/'
)

Azure CDN vs. Azure Blob Storage

It's important to note that Bitmovin outputs encoded files directly to Azure Blob Storage, not to Azure CDN or Azure Edge CDN.

If you wish to serve content via Azure CDN, you should configure your CDN to pull from the Blob Storage container after encoding is complete. This is outside the scope of Bitmovin configuration and is managed through your Azure CDN settings.


Common Issues

Authentication failure on encoding:

The most common cause is an incorrectly formatted account key. Always copy the key directly from the Azure portal without adding spaces, line breaks, or modifying the base64 string.

File transfer failure with special characters:

Filenames containing spaces or special characters (e.g., 'ProRes 8 channels.mov') can cause transfer failures. Best practice: use only alphanumeric characters, hyphens, and underscores in output paths and filenames.

Slow upload times:

If you experience persistent slow upload times to Azure Blob Storage under high I/O load, consider raising a support case with Azure to investigate potential throttling on your storage account.


Further Reading

For a full list of supported inputs and outputs, see the Bitmovin Supported Input and Output Storages documentation.

SDK code examples (Python, Java, .NET, and more) are available in the Bitmovin API SDK Examples repository on GitHub.