

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 를 사용하여 비디오 분석 AWS Command Line Interface
<a name="video-cli-commands"></a>

 AWS Command Line Interface (AWS CLI)를 사용하여 Amazon Rekognition Video 작업을 호출할 수 있습니다. 설계 패턴은 AWS SDK for Java 또는 다른 AWS SDKs와 함께 Amazon Rekognition Video API를 사용하는 것과 동일합니다. 자세한 내용은 [Amazon Rekognition Video API 개요](video.md#video-api-overview) 단원을 참조하십시오. 다음 절차에서는를 사용하여 비디오에서 레이블을 감지 AWS CLI 하는 방법을 보여줍니다.

`start-label-detection`을 불러와 비디오에서 레이블 감지을 시작합니다. Amazon Rekognition이 비디오 분석을 마치면 `start-label-detection`의 `--notification-channel` 파라미터에 지정된 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 Rekognition Video에서 Amazon SNS에 액세스할 수 있도록 구성합니다. 자세한 내용은 [Amazon Rekognition Video 구성](api-video-roles.md) 단원을 참조하십시오.

1. MOV 또는 MPEG-4 형식 비디오 파일을 S3 버킷으로 업로드합니다. 개발 및 테스트를 진행할 때는 30초 이하의 짧은 비디오를 사용하는 것이 좋습니다.

   이에 관한 지침은 *Amazon Simple Storage Service 사용 설명서*에서 [Amazon S3에 객체 업로드](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UploadingObjectsintoAmazonS3.html)를 참조하세요.

**비디오에서 레이블을 감지하려면**

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 Service 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints) 리소스에는 엔드포인트 URL을 지정하는 구문과 각 리전의 이름 및 코드가 나열되어 있습니다.
   + 설정 파라미터에 필터링 기준을 포함할 수도 있습니다. 예를 들어, `LabelsInclusionFilter` 또는 `LabelsExclusionFilter`를 원하는 값의 목록과 함께 사용할 수 있습니다.

    Windows 디바이스에서 CLI에 액세스하는 경우 작은따옴표 대신 큰따옴표를 사용하고 내부 큰따옴표는 백슬래시(즉 \$1)로 이스케이프 처리하여 발생할 수 있는 구문 분석 오류를 해결합니다. 예시를 보려면 다음을 참조하세요.

   ```
   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`인 경우 다음 AWS CLI 명령을 `SUCCEEDED`실행하여 레이블 감지 결과를 표시합니다.

   ```
   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"
               }
           }, .......
   ```