

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# を使用したビデオの分析 AWS Command Line Interface
<a name="video-cli-commands"></a>

 AWS Command Line Interface (AWS CLI) を使用して Amazon Rekognition Video オペレーションを呼び出すことができます。設計パターンは、 AWS SDK for Java または他の AWS SDK で Amazon Rekognition Video API を使用するのと同じです。 SDKs 詳細については、「[Amazon Rekognition Video API の概要](video.md#video-api-overview)」を参照してください。次の手順は、 を使用してビデオ内のラベル AWS CLI を検出する方法を示しています。

ビデオ内のラベルの検出を開始するには、`start-label-detection` を呼び出します。Amazon Rekognition によるビデオの分析が完了すると、`--notification-channel` の `start-label-detection` パラメータで指定されている Amazon SNS トピックに完了ステータスが送信されます。Amazon Simple Queue Service (Amazon SQS) キューを Amazon SNS トピックにサブスクライブすることで、完了ステータスを取得できます。次に [[receive-message](https://docs.aws.amazon.com/cli/latest/reference/sqs/receive-message.html)] をポーリングして Amazon SQS キューから完了ステータスを取得します。

`StartLabelDetection` を呼び出すときは、`LabelsInclusionFilter` および/または `LabelsExclusionFilter` 引数にフィルター引数を指定して結果をフィルタリングできます。詳細については、「[ビデオ内のラベルの検出](labels-detecting-labels-video.md)」を参照してください。

完了ステータスの通知は、`receive-message` 応答内の JSON 構造です。この JSON を応答から抽出する必要があります。完了ステータス JSON については、「[リファレンス: ビデオ分析結果の通知](video-notification-payload.md)」を参照してください。JSON 完了ステータスの `Status` フィールドの値が `SUCCEEDED` の場合、`get-label-detection` を呼び出すことでビデオ分析リクエストの結果を取得できます。`GetLabelDetection` を呼び出すときは、`SortBy` および `AggregateBy` 引数を使用して返された結果をソートして集計できます。

以下の手順には、Amazon SQS キューをポーリングするコードは含まれていません。また、Amazon SQS キューから返される JSON を解析するコードも含まれていません。Java での例については、「[Java または Python を使用した、Amazon S3 バケットに保存されたビデオの分析 (SDK)](video-analyzing-with-sqs.md)」を参照してください。

## 前提条件
<a name="video-prerequisites"></a>

この手順を実行するには、 AWS CLI がインストールされている必要があります。詳細については、「[Amazon Rekognition の開始方法](getting-started.md)」を参照してください。使用する AWS アカウントには、Amazon Rekognition API に対するアクセス許可が必要です。詳細については、[[Amazon Rekognition によって定義されるアクション](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonrekognition.html#amazonrekognition-actions-as-permissions)] を参照してください。

**Amazon Rekognition Video を設定してビデオをアップロードするには**

1. Amazon Rekognition Video へのユーザーアクセスを設定し、Amazon SNS への Amazon Rekognition Video アクセスを設定します。詳細については、「[Amazon Rekognition Video の設定](api-video-roles.md)」を参照してください。

1. S3 バケットに MOV あるいは MPEG-4 形式のビデオファイルをアップロードします。開発やテストには、長さが 30 秒以内の短いビデオを使うことをお勧めします。

   手順については、[[Amazon Simple Storage Service ユーザーガイド](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UploadingObjectsintoAmazonS3.html)] の [*Amazon S3 へのオブジェクトのアップロード*] を参照してください。

**ビデオ内のラベルを検出するには**

1. 次の AWS CLI コマンドを実行して、ビデオ内のラベルの検出を開始します。

   ```
   aws rekognition start-label-detection --video '{"S3Object":{"Bucket":"amzn-s3-demo-bucket","Name":"video-name"}}' \
    --notification-channel '{"SNSTopicArn":"TopicARN","RoleArn":"RoleARN"}' \
   --region region-name  \ 
   --features GENERAL_LABELS \
   --profile profile-name \
   --settings "{"GeneralLabels":{"LabelInclusionFilters":["Car"]}}
   ```

   以下の値を更新します。
   + `amzn-s3-demo-bucket` と `videofile` を、ステップ 2 で指定した Amazon S3 バケット名とファイル名に変更します。
   + `us-east-1` を、使用している AWS リージョンに変更します。
   + Rekognition セッションを作成する行の `profile_name` の値を、自分のデベロッパープロファイル名に置き換えます。
   + `TopicARN` を、[Amazon Rekognition Video の設定](api-video-roles.md) のステップ 3 で作成した Amazon SNS トピックの ARN に変更します。
   + `RoleARN` を、[Amazon Rekognition Video の設定](api-video-roles.md) のステップ 7 で作成した IAM サービスロールの ARN に変更します。
   + 必要に応じて、`endpoint-url` を指定できます。AWS CLI は、指定されたリージョンに基づいて適切なエンドポイント URL を自動的に決定します。ただし、[[プライベート VPC の](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html#what-is-privatelink)] エンドポイントを使用している場合は、`endpoint-url` の指定が必要となる場合があります。[[AWS サービスエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints)] リソースに、エンドポイント URL を指定するための構文、および各リージョンの名前とコードが記載されています。
   + 設定パラメータにフィルター条件を含めることもできます。例えば、目的の値のリストと共に `LabelsInclusionFilter` または `LabelsExclusionFilter` を使用できます。

    Windows デバイスで CLI にアクセスする場合は、パーサーエラーの発生に対処するため、一重引用符の代わりに二重引用符を使用し、内側の二重引用符をバックスラッシュ (\\) でエスケープします。次の例を参照してください。

   ```
   aws rekognition start-label-detection --video "{\"S3Object\":{\"Bucket\":\"amzn-s3-demo-bucket",\"Name\":\"video-name\"}}" --notification-channel "{\"SNSTopicArn\":\"TopicARN\",\"RoleArn\":\"RoleARN\"}" \
   --region us-east-1 --features GENERAL_LABELS --settings "{\"GeneralLabels\":{\"LabelInclusionFilters\":[\"Car\"]}}" --profile profile-name
   ```

1. 応答内の `JobId` の値に注意してください。この応答は次の JSON の例のようになります。

   ```
   {
       "JobId": "547089ce5b9a8a0e7831afa655f42e5d7b5c838553f1a584bf350ennnnnnnnnn"
   }
   ```

1. Amazon SQS キューをポーリングして完了ステータス JSON を取得するコードを書き込みます ([[receive-message](https://docs.aws.amazon.com/cli/latest/reference/sqs/receive-message.html)] を使用)。

1. 完了ステータス JSON から `Status` フィールドを抽出するコードを記述します。

1. の値が `Status`の場合`SUCCEEDED`、次の AWS CLI コマンドを実行してラベル検出結果を表示します。

   ```
   aws rekognition get-label-detection  --job-id {{JobId}} \
   --region {{us-east-1}} --sort-by TIMESTAMP aggregate-by TIMESTAMPS
   ```

   以下の値を更新します。
   + `JobId` を、手順 2 でメモしたジョブ識別子に合わせて変更します。
   + `Endpoint` と `us-east-1` を、使用している AWS エンドポイントとリージョンに変更します。

   この結果は、次の JSON の例のようになります。

   ```
   {
       "Labels": [
           {
               "Timestamp": 0,
               "Label": {
                   "Confidence": 99.03720092773438,
                   "Name": "Speech"
               }
           },
           {
               "Timestamp": 0,
               "Label": {
                   "Confidence": 71.6698989868164,
                   "Name": "Pumpkin"
               }
           },
           {
               "Timestamp": 0,
               "Label": {
                   "Confidence": 71.6698989868164,
                   "Name": "Squash"
               }
           },
           {
               "Timestamp": 0,
               "Label": {
                   "Confidence": 71.6698989868164,
                   "Name": "Vegetable"
               }
           }, .......
   ```