Edit

Share via


Manage Azure AI Video Indexer extensions for real-time analysis - Preview

To use real-time analysis, you must create and manage Azure AI Video Indexer (VI) extensions that support it. Use the following instructions to create, update, or delete a Video Indexer extension for real-time analysis.

After you create the extension by using the information in this article, connect cameras to it for real-time video analysis. For more information, see Add or remove cameras for use with the VI extension for real-time analysis.

Prerequisites

Before you begin, review the following prerequisites to ensure that you meet them.

  • You must have an Azure AI Video Indexer account. For more information, see the Create Video Indexer account tutorial.
  • You must have a running Kubernetes (K8s) cluster connected to Azure Arc. For more information, see Connect an existing Kubernetes cluster. Real-time analysis was validated on Azure Local but is compatible with any Kubernetes infrastructure that supports the following requirements.
  • Make sure you have a valid RTSP stream. You need the RTSP URL.
  • Optionally, you can have an Azure IoT for Operations extension deployed to an Azure Arc Kubernetes cluster. The installation of both AIO and VI extensions must be in the same cluster.
  • You must have the latest version of Azure CLI. However, you can skip this requirement if you're using Azure cloud shell.
  • As noted previously, your Azure subscription ID must already be approved. If not already approved, you can sign up at Application for Azure AI Video Indexer Enabled by Arc - real-time video analysis.

We recommend enabling automatic version upgrade for your Arc-enabled Kubernetes cluster extension, so that you always have the latest security patches and new capabilities. For more information, see Deploy and manage an Azure Arc-enabled Kubernetes cluster extension.

Deploy the Azure AI Video Indexer extension

Choose the method you want to use to create the Azure AI Video Indexer extension. Create the extension by using the Azure portal, with Azure CLI, or by using a Bicep template, depending on your preference and environment.

To create a Video Indexer extension that supports real-time analysis in the Azure portal, complete the following steps:

  1. In the Azure portal, go to your Azure Arc-connected Kubernetes cluster.

  2. On the Kubernetes cluster, under Settings, select Extensions.

  3. Select Add > Azure AI Video Indexer Arc Extension.

  4. Select Create.

  5. On the Basic tab, provide the following information:

    Field Value
    Subscription Select the subscription for your extension.
    Resource group Select the resource group for your extension.
    Region Select the region to create the extension.
    Connected K8S cluster Select the Azure Arc connected Kubernetes cluster.
    Extension name Enter a name for your extension.
    Video indexer account ID Select the Azure AI Video Indexer account that the extension connects to.
    Ingress endpoint Enter the cluster endpoint, either an IP address or DNS name, to use as the API endpoint.
    Storage class name Provide the storage class supported by your Kubernetes distribution. For example, use azurefile-cli for AKS. See Storage Classes in AKS for more info. For other distributions, see your Kubernetes documentation.
    Content type Select the following options:
    Live video to enable real-time analysis
    Media uploads to allow upload media files to the extension

    Screenshot of the basics tab for the Azure AI Video Indexer extension that shows fields in sections for project details, instance details, and additional settings.

  6. Select Next.

  7. On the Processing + AI tab, provide the following information:

    Field Description
    Agentic capabilities Includes advanced video investigation capabilities. Requires two dedicated H100 GPUs. Toggle to enable or disable.
    Summarization capabilities Includes advanced vision event summary capabilities. Requires a dedicated H100 GPU. Toggle to enable or disable.
    Processing
    • Live video requires four GPU units: one dedicated to live streaming, two for agentic capabilities, and one for summarization capabilities.
    • Media uploads requires one GPU unit for summarization capabilities.
    Toleration Key for GPU Enter the toleration key for GPU nodes (for example, nvidia.com/gpu). Required for GPU workloads.
    Node selector (optional) If there are multiple GPU node types, you can add a node selector to select the desired node. Specify the node name and value for each of the following (optional):
    • Live video stream
    • Agentic capabilities
    • Summarization capabilities

    Screenshot of the Create an AI Video Indexer extension generative AI page.

  8. Select Review + create > Create.

Update VI extension using CLI

To update your extension, add any of the parameters from the Create with CLI tab with their new values if you want to change them in the following example.

In this example, it updates the extension endpoint.

az k8s-extension update --name $extension_name --extension-type "Microsoft.videoIndexer" --scope cluster \
  --release-namespace "video-indexer" \
  --cluster-name $cluster_name \
  --resource-group $cluster_resource_group \
  --cluster-type "connectedClusters" \
  --version $version \
  --release-train "preview" \
  --config "videoIndexer.endpointUri=$endpoint"

Delete VI extension using CLI

Use the following parameters as input to the extension delete command:

Parameter Type Description
<cluster-name> String The Kubernetes Azure arc instance name
<resource-group> String The Kubernetes Azure arc resource group name
<extension-name> String Enter the VI extension name you would like to delete

To get your extension name, run the following command:

az k8s-extension list --cluster-name <cluster-name>
 --cluster-type connectedClusters --resource-group  <resource-group> --query "[?extensionType == 'microsoft.videoindexer'] | [0]"

Run the following command to delete a VI extension:

az k8s-extension delete --cluster-name <cluster-name> --cluster-type connectedclusters --resource-group <resource-group> --name <extension-name> --yes