Azure AI Video Indexer を大規模に使用する場合の考慮事項

重要

Azure Media Services の 提供終了の発表により、Azure AI Video Indexer は Azure AI Video Indexer の 機能の調整を発表します。 Azure AI Video Indexer アカウントの意味を理解するには、Azure Media Service (AMS) の提供終了に関連する変更に関するページを参照してください。 AMS 提供 終了の準備: VI の更新と移行に関するガイドを参照してください。

ビデオのインデックス作成に Azure AI Video Indexer を使用していて、ビデオのアーカイブが増加しているときは、スケーリングを検討してください。

この記事では、次のような質問に回答します。

  • 考慮すべき技術的な制約はありますか。
  • スマートで効率的な方法はありますか。
  • プロセスに余分なコストをかけないようにすることはできますか。

この記事では、Azure AI Video Indexer を大規模に使用する方法に関する 6 つのベスト プラクティスについて説明します。

ビデオのアップロード時に、バイト配列に対する URL の使用を検討する

Azure AI Video Indexer では、URL からビデオをアップロードするか、ファイルをバイト配列として送信して直接アップロードするかを選択できます。後者にはいくつかの制約があります。 詳細については、「アップロードに関する考慮事項と制限事項」を参照してください。

まず、ファイル サイズの制限があります。 URL を使用した場合のアップロード サイズの制限が 30 GB であるのに比べて、バイト配列ファイルのサイズは 2 GB に制限されています。

次に、パフォーマンスとスケーリング能力に影響を与える可能性があるいくつかの問題について説明します。

  • マルチパートを使用してファイルを送信すると、ネットワークへの依存性が高まる
  • サービスの信頼性
  • 接続性
  • アップロード速度
  • World Wide Web のどこかでパケットが失われる

大規模な Azure AI Video Indexer の使用に関する最初の考慮事項

URL を使用してビデオをアップロードする場合は、メディア ファイルの場所へのパスを指定するだけで、Video Indexer によって残りの処理が自動的に行われます (upload video API の videoUrl フィールドを参照)。

ヒント

upload video API の省略可能なパラメーター videoUrl を使用します。

URL を使用してビデオをアップロードする方法の例については、この例をご覧ください。 または、AzCopy を使用して、迅速かつ確実にコンテンツをストレージ アカウントにコピーし、そこから SAS URL を使用してコンテンツを Azure AI Video Indexer に送信できます。 Azure AI Video Indexer では、"読み取り専用" の SAS URL を使用することをお勧めします。

調整を考慮する

Azure AI Video Indexer は大規模なインデックス作成に対応するように構築されており、最大限に活用する場合は、システムの機能を認識し、それに応じて統合を設計する必要もあります。 ビデオのバッチに対するアップロード要求を送信しても、一部のムービーがアップロードされず、HTTP 429 応答コード (要求が多すぎる) を受信することになります。 1 秒あたり 10 個の要求および 1 分あたり 120 個の要求という API 要求制限があります。

Azure AI Video Indexer は HTTP 応答にヘッダーを追加 retry-after します。ヘッダーは、次回の再試行をいつ試行するかを指定します。 次の要求を試す前に、必ずそのことを考慮してください。

調整を考慮して統合を適切に設計する

コールバック URL を使用する

アップロード要求を送信した瞬間から要求の状態を常にポーリングするのではなく、コールバック URL を追加し、Azure AI Video Indexer で更新が行われるまで待機することをお勧めします。 アップロード要求の状態が変更されるとすぐに、指定した URL への POST 通知が取得されます。

コールバック URL は、upload video API のパラメーターの 1 つとして追加できます。 GitHub リポジトリでコード サンプルを確認してください。

コールバック URL の場合は、Azure Functions を使用することもできます。これは、HTTP によってトリガーされ、次のフローを実装できるサーバーレスのイベントドリブン プラットフォームです。

コールバック URL の定義

コールバック URL は、以下のイベントについてのユーザーへの通知 (POST 要求を使用) に使われます。

  • インデックス状態の変更:

    • [プロパティ] :

      名前 説明
      id ビデオ ID
      state ビデオの状態
    • 例: https://test.com/notifyme?projectName=MyProject&id=1234abcd>state=Processed

  • ビデオで特定された人物:

    • Properties

      件名 説明
      id ビデオ ID
      faceId ビデオ インデックスに表示される顔 ID
      knownPersonId 顔モデル内で一意の人物 ID
      personName 人物の名前
    • 例: https://test.com/notifyme?projectName=MyProject&id=1234abcd&faceid=12&knownPersonId=CCA84350-89B7-4262-861C-3CAC796542A5&personName=Inigo_Montoya

適切なインデックス作成パラメーターを使用する

Azure AI Video Indexer の大規模な使用に関する意思決定を行うときは、ニーズに合った適切なパラメーターを使って最大限の効果を引き出す方法を確認してください。 ユース ケースについて考えてみましょう。さまざまなパラメーターを定義することで、コストを節約し、ビデオのインデックス作成プロセスを高速化することができます。

ビデオをアップロードしてインデックスを作成する前に、このドキュメントを参照して、オプションの内容を理解してください。

たとえば、ビデオを視聴する予定がない場合は、プリセットをストリーミングに設定しません。オーディオ分析情報のみが必要な場合は、ビデオ分析情報に対してインデックスを作成しません。

最適な解像度のインデックス (最高解像度ではない)

ビデオのインデックス作成に必要なビデオ品質を知りたい場合があります。

多くの場合、HD (720P) ビデオと 4K ビデオの間で、インデックス作成のパフォーマンスにはほとんど違いがありません。 最終的には、同程度に信頼できるほぼ同等の分析情報を得ることができます。 アップロードするムービーの品質が高くなると、ファイル サイズが大きくなり、ビデオのアップロードに必要なコンピューティング能力と時間が増大します。

たとえば、顔検出機能の場合、解像度が高くなると、小さいがコンテキスト上重要な顔が多数存在するシナリオで役立ちます。 ただし、これには、実行時に 2 次的な増加が伴い、擬陽性のリスクが高まります。

そのため、ユース ケースに適した結果が得られることを確認し、最初にローカルでテストすることをお勧めします。 720P と 4K で同じビデオをアップロードし、取得された分析情報を比較します。