使用分析視訊 AWS Command Line Interface - Amazon Rekognition

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用分析視訊 AWS Command Line Interface

您可以使用 AWS Command Line Interface (AWS CLI) 呼叫 Amazon Rekognition Video 操作。設計模式API與將 Amazon Rekognition Video 與或其他一起使用相 AWS SDK for Java 同。AWS SDKs如需詳細資訊,請參閱Amazon Rekognition Video 觀 API。下列程序說明如何使 AWS CLI 用偵測視訊中的標籤。

呼叫 start-label-detection 來開始偵側影片中的標籤。Amazon Rekognition 完成視訊的分析後,完成狀態就會傳送到的參數中指定的 Amazon SNS 主題。--notification-channel start-label-detection您可以通過訂閱 Amazon 簡單隊列服務(AmazonSQS)隊列到 Amazon SNS 主題來獲得完成狀態。然後,您輪詢收到的消息以從 Amazon SQS 隊列中獲取完成狀態。

呼叫 StartLabelDetection 時,您可以透過向 LabelsInclusionFilter 和/或 LabelsExclusionFilter 參數提供過濾參數來過濾結果。如需詳細資訊,請參閱 偵測影片中的標籤

完成狀態通知是receive-message響應中的一种JSON結构。您需要從響應JSON中提取。如需有關完成狀態的資訊JSON,請參閱參考:影片分析結果通知。如果已完成狀態的Status欄位值JSON為SUCCEEDED,您可以透過呼叫取得視訊分析要求的結果get-label-detection。呼叫 GetLabelDetection 時,您可以使用 SortByAggregateBy 引數來排序和彙總傳回的結果。

下列程序不包含輪詢 Amazon SQS 佇列的程式碼。此外,它們不包含用於解析從 Amazon SQS 隊列返回的代碼。JSON如需 Java 範例,請參閱 使用 Java 或 Python(SDK)分析存儲在 Amazon S3 存儲桶中的視頻

必要條件

要運行此過程,你需要安 AWS CLI 裝。如需詳細資訊,請參閱Amazon Rekognition 入門。您使用的AWS帳戶必須具有 Amazon Reko API gnition 的存取權限。如需詳細資訊,請參閱 Amazon Rekognition 定義的動作

若要設定 Amazon Rekognition Video 並上傳影片
  1. 設定使用者對 Amazon Rekognition Video 的存取權限,並設定 Amazon Rekognition Video 存取 Amazon。SNS如需詳細資訊,請參閱設定 Amazon Rekognition Video

  2. 將MOV或 MPEG -4 格式的視訊檔案上傳到您的 S3 儲存貯體。在開發和測試階段,我們建議使用長度不超過 30 秒的短片。

    如需指示說明,請參閱《Amazon Simple Storage Service 使用者指南》中的上傳物件至 Amazon S3

若要偵測影片中的標籤
  1. 執行下列 AWS CLI 命令以開始偵測視訊中的標籤。

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

    更新下列的值:

    • bucketnamevideofile 變更為您在步驟 2 中指定的 Amazon S3 儲存貯體與文檔名稱。

    • 變更us-east-1為您正在使用的AWS地區。

    • 將建立 Rekognition 工作階段的行中 profile_name 值取代為您開發人員設定檔的名稱。

    • 更改TopicARN為ARN您在第 3 步中創建的 Amazon SNS 主題設定 Amazon Rekognition Video

    • 變更RoleARN為您在ARN的步驟 7 中建立的IAM服務角色設定 Amazon Rekognition Video

    • 如有需要,可以指定 endpoint-url。AWSCLI應該會URL根據提供的區域自動判斷適當的端點。但是,如果您使用私有端點VPC,則可能需要指定endpoint-url. 「AWS服務端點」資源會列出指定端點 URL 的語法,以及每個區域的名稱和代碼。

    • 您還可以在設定參數中包括過濾條件。例如,您可以在所需值的清單之外,邊使用 LabelsInclusionFilterLabelsExclusionFilter

    如果您在 Windows 裝置CLI上存取,請使用雙引號而非單引號,並以反斜線 (即\) 逸出內部雙引號,以解決您可能遇到的任何剖析器錯誤。如需範例,請參閱下列內容:

    aws rekognition start-label-detection --video "{\"S3Object\":{\"Bucket\":\"bucket-name\",\"Name\":\"video-name\"}}" --notification-channel "{\"SNSTopicArn\":\"TopicARN\",\"RoleArn\":\"RoleARN\"}" \ --region us-east-1 --features GENERAL_LABELS --settings "{\"GeneralLabels\":{\"LabelInclusionFilters\":[\"Car\"]}}" --profile profile-name
  2. 請記下回應中的 JobId 值。回應看起來類似下列JSON範例。

    { "JobId": "547089ce5b9a8a0e7831afa655f42e5d7b5c838553f1a584bf350ennnnnnnnnn" }
  3. 撰寫程式碼以輪詢 Amazon SQS 佇列的完成狀態 JSON (使用接收訊息)。

  4. 撰寫程式碼以從完成狀態擷取Status欄位JSON。

  5. 如果的值StatusSUCCEEDED,請執行下列 AWS CLI 命令以顯示標籤偵測結果。

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

    更新下列的值:

    • 變更 JobId 以符合您在步驟 2 中所記下的任務識別碼。

    • 變更Endpointus-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" } }, .......