本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用分析視訊 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
時,您可以使用 SortBy
和 AggregateBy
引數來排序和彙總傳回的結果。
下列程序不包含輪詢 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 並上傳影片
-
設定使用者對 Amazon Rekognition Video 的存取權限,並設定 Amazon Rekognition Video 存取 Amazon。SNS如需詳細資訊,請參閱設定 Amazon Rekognition Video。
-
將MOV或 MPEG -4 格式的視訊檔案上傳到您的 S3 儲存貯體。在開發和測試階段,我們建議使用長度不超過 30 秒的短片。
如需指示說明,請參閱《Amazon Simple Storage Service 使用者指南》中的上傳物件至 Amazon S3。
若要偵測影片中的標籤
-
執行下列 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"]}}
更新下列的值:
-
將
bucketname
與videofile
變更為您在步驟 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 的語法,以及每個區域的名稱和代碼。 -
您還可以在設定參數中包括過濾條件。例如,您可以在所需值的清單之外,邊使用
LabelsInclusionFilter
或LabelsExclusionFilter
。
如果您在 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
-
-
請記下回應中的
JobId
值。回應看起來類似下列JSON範例。{ "JobId": "547089ce5b9a8a0e7831afa655f42e5d7b5c838553f1a584bf350ennnnnnnnnn" }
-
撰寫程式碼以輪詢 Amazon SQS 佇列的完成狀態 JSON (使用接收訊息)。
-
撰寫程式碼以從完成狀態擷取
Status
欄位JSON。 -
如果的值
Status
為SUCCEEDED
,請執行下列 AWS CLI 命令以顯示標籤偵測結果。aws rekognition get-label-detection --job-id
JobId
\ --regionus-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" } }, .......
-