Analysieren eines Videos mit dem AWS Command Line Interface - Amazon Rekognition

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Analysieren eines Videos mit dem AWS Command Line Interface

Sie können die AWS Command Line Interface (AWS CLI) verwenden, um Amazon Rekognition Video Video-Operationen aufzurufen. Das Entwurfsmuster entspricht der Verwendung der Amazon Rekognition Video API mit den AWS SDK for Java oder anderen AWS-SDKs. Weitere Informationen finden Sie unter Überblick für die Amazon-Rekognition-Video-API. Die folgenden Verfahren zeigen, wie Sie mit dem AWS CLI Labels in einem Video erkennen können.

Sie starten, Labels in einem Video zu erkennen, indem Sie start-label-detection aufrufen. Wenn Amazon Rekognition mit der Analyse des Videos fertig ist, wird der Fertigstellungsfortschritt an das im --notification-channel-Parameter von start-label-detection angegebenen Amazon-SNS-Thema gesendet. Sie können den Abschlussstatus erhalten, indem Sie eine Amazon-Simple-Queue-Service-Warteschlange (Amazon SQS) zum Amazon-SNS-Thema abonnieren. Sie befragen dann receive-message, um den Abschlussstatus aus der Amazon-SQS-Warteschlange abzurufen.

Beim Aufrufen von StartLabelDetection können Sie Ihre Ergebnisse filtern, indem Sie Filterargumente für die Argumente LabelsInclusionFilter und/oder LabelsExclusionFilter angeben. Weitere Informationen finden Sie unter Erkennen von Labels in einem Video.

Die Statusmeldung der Erledigung ist eine JSON-Struktur innerhalb der Antwort receive-message. Sie müssen den JSON aus der Antwort extrahieren. Informationen über den JSON-Erledigungsstatus finden Sie unter Referenz: Videoanalyse-Ergebnisbenachrichtigung. Wenn der Wert des Feldes Status des JSON-Status SUCCEEDED ist, können Sie die Ergebnisse der Videoanalyseanforderung erhalten, indem Sie get-label-detection aufrufen. Beim Aufrufen von GetLabelDetection können Sie die zurückgegebenen Ergebnisse mithilfe der Argumente SortBy und AggregateBy sortieren und aggregieren.

Die folgenden Prozeduren enthalten keinen Code zum Abfragen der Amazon-SQS-Warteschlange. Außerdem enthalten sie keinen Code, um den JSON zu analysieren, der von der Amazon-SQS-Warteschlange zurückgegeben wird. Ein Beispiel in Java finden Sie unter Analysieren eines in einem Amazon S3-Bucket gespeicherten Videos mit Java oder Python (SDK).

Voraussetzungen

Um dieses Verfahren ausführen zu können, muss das AWS CLI installiert sein. Weitere Informationen finden Sie unter Erste Schritte mit Amazon Rekognition. Das AWS-Konto, das Sie verwenden, muss über die Zugriffsberechtigungen für die Amazon-Rekognition-API verfügen. Weitere Informationen finden Sie unter Von Amazon Rekognition definierte Aktionen.

Um Amazon Rekognition Video zu konfigurieren und ein Video hochzuladen
  1. Konfigurieren Sie den Benutzerzugriff auf Amazon Rekognition Video und den Zugriff auf Amazon Rekognition Video auf Amazon SNS. Weitere Informationen finden Sie unter Amazon Rekognition Video konfigurieren.

  2. Laden Sie eine Videodatei im MOV- oder MPEG-4-Format in Ihren S3-Bucket hoch. Bei der Entwicklung und beim Testen empfehlen wir, kurze Videos mit einer Länge von maximal 30 Sekunden zu verwenden.

    Weitere Anleitungen finden Sie unter Upload eines Objekts in Amazon S3 im Benutzerhandbuch für Amazon Simple Storage Service.

Um Labels in einem Video zu erkennen
  1. Führen Sie den folgenden AWS CLI Befehl aus, um mit der Erkennung von Labels in einem Video zu beginnen.

    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"]}}

    Aktualisieren Sie die folgenden Werte:

    • Ändern Sie bucketname und videofile in den Amazon-S3-Bucket-Namen und den Dateinamen, die Sie in Schritt 2 angegeben haben.

    • Ändern Sie us-east-1 in die von Ihnen verwendete AWS-Region.

    • Ersetzen Sie den Wert von profile_name in der Zeile, die die Rekognition-Sitzung erstellt, durch den Namen Ihres Entwicklerprofils.

    • Ändern Sie TopicARN in den ARN des Amazon-SNS-Themas, das Sie in Schritt 3 von Amazon Rekognition Video konfigurieren erstellt haben.

    • Ändern Sie RoleARN in den ARN der IAM-Servicerolle, die Sie in Schritt 7 von Amazon Rekognition Video konfigurieren erstellt haben.

    • Falls erforderlich, können Sie die endpoint-url angeben. Die AWS-CLI sollte anhand der angegebenen Region automatisch die richtige Endpunkt-URL ermitteln. Wenn Sie jedoch einen Endpunkt von Ihrer privaten VPC aus verwenden, müssen Sie möglicherweise die endpoint-url angeben. Die Ressource AWS-Service-Endpunkte listet die Syntax für die Angabe von Endpunkt-URLs sowie die Namen und Codes für jede Region auf.

    • Sie können auch Filterkriterien in den Einstellungsparameter aufnehmen. Sie können beispielsweise einen LabelsInclusionFilter oder einen LabelsExclusionFilter zusammen mit einer Liste gewünschter Werte verwenden.

    Wenn Sie auf einem Windows-Gerät auf die CLI zugreifen, verwenden Sie doppelte Anführungszeichen anstelle von einfachen Anführungszeichen und maskieren Sie die inneren doppelten Anführungszeichen durch einen Backslash (d. h. \), um eventuell auftretende Parserfehler zu beheben. Ein Beispiel finden Sie unten:

    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. Notieren Sie den JobId-Wert in der Antwort. Die Antwort sollte dem folgenden JSON-Beispiel ähnlich sein.

    { "JobId": "547089ce5b9a8a0e7831afa655f42e5d7b5c838553f1a584bf350ennnnnnnnnn" }
  3. Schreiben Sie Code, um die Amazon-SQS-Warteschlange nach dem JSON-Abschlussstatus abzufragen (unter Verwendung von receive-message).

  4. Schreiben Sie Code, um das Feld Status aus dem JSON-Erledigungsstatus zu extrahieren.

  5. Wenn der Wert von Status istSUCCEEDED, führen Sie den folgenden AWS CLI Befehl aus, um die Ergebnisse der Labelerkennung anzuzeigen.

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

    Aktualisieren Sie die folgenden Werte:

    • Ändern Sie JobId in die Auftrags-ID, die Sie in Schritt 2 notiert haben.

    • Ändern Sie Endpoint und us-east-1 in den AWS-Endpunkt und die Region, die Sie verwenden.

    Das Ergebnis sollte dem folgenden JSON-Beispiel ähnlich sein:

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