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 のどこかでパケットが失われる
URL を使用してビデオをアップロードする場合は、メディア ファイルの場所へのパスを指定するだけで、Video Indexer によって残りの処理が自動的に行われます (upload video API の videoUrl
フィールドを参照)。
ヒント
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
ビデオで特定された人物:
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 で同じビデオをアップロードし、取得された分析情報を比較します。