後で Analyze プロシージャーで分析するために、処理対象のビデオを送信します。このタスクは、処理の遅延のために非同期で実行されます。
次の表に、この AI タスクを使用する際に設定する必要があるプロパティ (アクセスに必要な資格情報) を示します。
|
PropertyKey |
ProviderType |
キー |
KeySecret |
Account |
Alibaba |
内容安全 app-key |
用户AccessKey |
用户AccessKey |
Amazon |
- |
- |
- |
Baidu |
视频内容分析 |
视频内容分析 |
|
Google |
Video Intelligence API |
- |
- |
IBM |
- |
- |
- |
Microsoft |
Video Indexer |
- |
Azure Connect |
SAP |
- |
- |
- |
Tencent |
- |
- |
- |
ここでは、ビデオの同期処理と非同期処理という 2 つの方法について説明します。処理が終わると、プロバイダーによって実行された分析結果を取得できます。つまり、Process タスクと Analyze タスクの両方を使用する必要があります。
ビデオを同期処理するために、処理ステータスをポーリングします。その実行方法の例を次に示します。
&callbackObject = "" // この方法ではコールバックオブジェクトの指定は不要
&VideoId = GeneXusAI.Video.Process(&video,&locale,&callbackObject,&provider,&Messages)
if &Messages.Count > 0
<process_errors>
else
do while True
&outputAnalysis = GeneXusAI.Video.Analyze(&videoId,&provider,&Messages) // ポーリング
if &outputAnalysis.Completed OR &Messages.Count > 0
exit // ループを終了
endIf
&x = Sleep(30) // ポーリング再開まで 30 秒待機
endDo
if &Messages.Count > 0
<process_errors>
else
<analyze_result>
endIf
endIf
ビデオのサイズが大きい場合、この方法では時間がかかる可能性があることに注意してください。この場合は、非同期の方法を使用することを検討してください。
ビデオを非同期処理するには、このタスクに対してコールバックオブジェクトを指定します。
たとえば、次のようにコードを記述します:
&callbackObject = Link(VideoHandler) // 参照を維持するためのオブジェクト名を取得
&VideoId = GeneXusAI.Video.Process(&video,&locale,&callbackObject,&provider,&Messages)
if &Messages.Count > 0
<process_errors>
endIf
この VideoHandler は Procedure オブジェクトで、[ Expose as Web Service ] プロパティが True に設定されており、次のように定義されます:
Rules: parm(in:&videoId); // 必須 :: ビデオの識別子
Source: &OutputAnalysis = GeneXusAI.Video.Analyze(&videoId,&provider,&Messages)
if &Messages.Count > 0
<process_errors>
else
<analyze_result>
endIf
別の方法として、このオブジェクトで分析結果を取得する代わりに、通知を送信して Web 用またはスマートデバイス用のパネルで Analyze プロシージャーを呼び出すこともできます。これを行うには、Web 用の Server.Socket 外部オブジェクトまたはスマートデバイス用の Notification Provider API を使用します。
警告: 非同期ソリューションをテストするには、外部プロバイダーからアプリケーションにアクセスできる必要があります (たとえば、IP にリモートアクセスできる必要があります。または、実際のサーバーにアプリケーションをホストすることもできます。クラウドにデプロイする方法はおすすめです)。
- 非同期の方法では、受信ビデオの識別子が設定された Parm ルールをコールバックオブジェクトに含める必要があります。
- 特別な注意事項
- Microsoft の場合:
- Key と Account を取得するには、こちらのドキュメントを参照してください。
- Faces フィールドのアイテムにデータがなくても (top、left、width、height フィールドがゼロ (空) の場合でも)、認識された顔の切り抜き画像を値に持つ thumbnail キーを含むプロパティが割り当てられます。
- Baidu の場合:
- 同期モードのみがサポートされます (コールバック URL は使用できません)。
プラットフォーム |
Web (.NET、.NET Core、Java)、スマートデバイス (Android、iOS) |
接続 |
オンライン |
このプロシージャーは、GeneXus 16 Upgrade 1 以降で利用できます。
|