次の方法で共有


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

ビデオのインデックス作成に 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 によって残りの処理が自動的に行われます (videoUrl API の フィールドを参照)。

ヒント

upload video API の省略可能なパラメーター videoUrl を使用します。 さらに、 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

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

    • プロパティ

      名前 説明
      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 で同じビデオをアップロードし、得られる分析情報を比較します。