本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用分析視訊 AWS Command Line Interface
您可以使用 AWS Command Line Interface (AWS CLI) 呼叫 Amazon Rekognition Video 操作。設計模式與將 Amazon Rekognition Video API 與 AWS SDK for Java 或其他 AWS 開發套件搭配使用相同。如需詳細資訊,請參閱 Amazon Rekognition Video API 概觀。下列程序說明如何使 AWS CLI 用偵測視訊中的標籤。
呼叫 start-label-detection
來開始偵側影片中的標籤。當 Amazon Rekognition 完成影片分析時,完成狀態會傳送到 start-label-detection
的 --notification-channel
參數中所指定的 Amazon SNS 主題。您可以透過訂閱 Amazon Simple Queue Service (Amazon SQS) 佇列到 Amazon SNS 主题來取得完成狀態。接著輪詢接收訊息,以自 Amazon SQS 佇列取得完成狀態。
呼叫 StartLabelDetection
時,您可以透過向 LabelsInclusionFilter
和/或 LabelsExclusionFilter
參數提供過濾參數來過濾結果。如需詳細資訊,請參閱偵測影片中的標籤。
完成狀態通知的為 receive-message
回應內的 JSON 結構。您需要自回應中擷取出 JSON。如需完成狀態 JSON 的相關資訊,請參閱 參考:影片分析結果通知。如果已完整狀態 JSON 的 Status
欄位值為 SUCCEEDED
,您可以呼叫 get-label-detection
來取得影片分析請求的結果。呼叫 GetLabelDetection
時,您可以使用 SortBy
和 AggregateBy
引數來排序和彙總傳回的結果。
以下程序不包含用以輪詢 Amazon SQS 佇列的程式碼。此外也不包含用於剖析自 Amazon SQS 佇列傳回的 JSON 之程式碼。如需 Java 範例,請參閱 使用 Java 或 Python (SDK) 分析儲存於 Amazon S3 儲存貯體中的影片。
必要條件
要運行此過程,你需要安 AWS CLI 裝。如需詳細資訊,請參閱 Amazon Rekognition 入門。您使用的 AWS 帳戶必須有 Amazon Rekognition API 的存取許可。如需詳細資訊,請參閱 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
變更為您在 設定 Amazon Rekognition Video 步驟 3 建立的 Amazon SNS 主題 ARN。 -
將
RoleARN
變更為您在步驟 7 建立的 設定 Amazon Rekognition Video IAM 服務角色的 ARN。 -
如有需要,可以指定
endpoint-url
。AWS CLI 應根據提供的區域自動判斷適當的端點 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 (使用接收訊息)。
-
編寫程式碼以自完成狀態 JSON 擷取
Status
欄位。 -
如果的值
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" } }, .......
-