

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.

# Amazon-Rekognition-Video-Operationen aufrufen
<a name="api-video"></a>

Amazon Rekognition Video ist eine asynchrone API, die Sie verwenden können, um Videos zu analysieren, die in einem Amazon-Simple-Storage-Service-Bucket (Amazon S3) gespeichert sind. Sie starten die Analyse eines Videos, indem Sie einen Amazon Rekognition Video `Start` Video-Vorgang aufrufen, z. B. [StartPersonTracking](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartPersonTracking.html) Amazon Rekognition Video veröffentlicht das Ergebnis der Analyseanforderung in einem Amazon-Simple-Notification-Service-Thema (Amazon SNS). Sie können eine Amazon Simple Queue Service (Amazon SQS) -Warteschlange oder eine AWS Lambda Funktion verwenden, um den Abschlussstatus der Videoanalyseanfrage aus dem Amazon SNS SNS-Thema abzurufen. Schließlich erhalten Sie die Ergebnisse der Videoanalyseanfrage, indem Sie einen Amazon Rekognition `Get` Rekognition-Vorgang aufrufen, z. B. [GetPersonTracking](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetPersonTracking.html) 

Die Informationen in den folgenden Abschnitten zeigen anhand von Operationen zur Erkennung von Labels, wie Amazon-Rekognition-Video-Labels (Objekte, Ereignisse, Konzepte und Aktivitäten) in einem Video erkennt, das in einem Amazon-S3-Bucket gespeichert ist. Derselbe Ansatz funktioniert auch für die anderen Amazon Rekognition Video Video-Operationen, z. B. und. [StartFaceDetection[StartPersonTracking](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartPersonTracking.html)](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartFaceDetection.html) Das Beispiel [Analysieren eines in einem Amazon S3-Bucket gespeicherten Videos mit Java oder Python (SDK)](video-analyzing-with-sqs.md) zeigt das Analysieren eines Videos unter Verwendung einer Amazon-SQS-Warteschlange, um den Abschlussstatus aus dem Amazon-SNS-Thema abzurufen. Es wird auch als Grundlage für andere Amazon-Rekognition-Video-Beispiele verwendet, wie z. B. [Pfade von Personen](persons.md). Beispiele finden Sie unter. AWS CLI [Analysieren eines Videos mit dem AWS Command Line Interface](video-cli-commands.md)

**Topics**
+ [Starten der Videoanalyse](#api-video-start)
+ [Abrufen des Abschlussstatus einer Amazon-Rekognition-Video-Analyseanforderungs](#api-video-get-status)
+ [Analyseergebnisse von Amazon Rekognition Video abrufen](#api-video-get)

## Starten der Videoanalyse
<a name="api-video-start"></a>

Sie starten eine Anfrage zur Erkennung von Amazon Rekognition Video Video-Etiketten, indem Sie anrufen. [StartLabelDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartLabelDetection.html) Im Folgenden sehen Sie ein Beispiel für eine JSON-Anforderung, die von `StartLabelDetection` übergeben wird.

```
{
    "Video": {
        "S3Object": {
            "Bucket": "amzn-s3-demo-bucket",
            "Name": "video.mp4"
        }
    },
    "ClientRequestToken": "LabelDetectionToken",
    "MinConfidence": 50,
    "NotificationChannel": {
        "SNSTopicArn": "arn:aws:sns:us-east-1:nnnnnnnnnn:topic",
        "RoleArn": "arn:aws:iam::nnnnnnnnnn:role/roleopic"
    },
    "JobTag": "DetectingLabels"
}
```

Der Eingabeparameter `Video` gibt den Namen der Videodatei und den Amazon-S3-Bucket an, aus dem sie abgerufen werden soll. `NotificationChannel` enthält den Amazon-Ressourcennamen (ARN) (ARN) des Amazon-SNS-Themas, das Amazon Rekognition Video benachrichtigt, wenn die Videoanalyseanforderung abgeschlossen ist. Das Amazon-SNS-Thema muss sich in derselben AWS-Region befinden wie der Amazon-Rekognition-Video-Endpunkt, den Sie aufrufen. `NotificationChannel` enthält auch den ARN für eine Rolle, die es Amazon Rekognition Video erlaubt, auf dem Amazon-SNS-Thema zu veröffentlichen. Sie erteilen Amazon Rekognition Veröffentlichungsberechtigungen für Ihre Amazon-SNS-Themen, indem Sie eine IAM-Servicerolle erstellen. Weitere Informationen finden Sie unter [Amazon Rekognition Video konfigurieren](api-video-roles.md).

Sie können auch einen optionalen Eingabeparameter, `JobTag`, angeben, der es Ihnen ermöglicht, den Auftrag im Abschlussstatus zu identifizieren, der im Amazon-SNS-Thema veröffentlicht wird. 

Um ein versehentliches doppeltes Ausführen von Analyseaufträgen zu vermeiden, können Sie optional ein idempotentes Token, `ClientRequestToken`, bereitstellen. Wenn Sie einen Wert für `ClientRequestToken` angeben, liefert die Operation `Start` die gleiche `JobId` für mehrere identische Aufrufe zur Startoperation, wie z. B. `StartLabelDetection`. Ein Token `ClientRequestToken` hat eine Lebensdauer von 7 Tagen. Nach 7 Tagen können Sie es wiederverwenden. Wenn Sie das Token während der Token-Lebensdauer wiederverwenden, geschieht folgendes: 
+ Wenn Sie das Token mit der gleichen `Start`-Operation und den gleichen Eingabeparametern wiederverwenden, wird dieselbe `JobId` zurückgegeben. Der Auftrag wird nicht erneut ausgeführt und Amazon Rekognition Video sendet keinen Abschlussstatus an das registrierte Amazon-SNS-Thema.
+ Wenn Sie das Token mit der gleichen `Start`-Operation und einer geringfügigen Änderung der Eingabeparameter wiederverwenden, wird eine `IdempotentParameterMismatchException`-Ausnahme (HTTP-Statuscode: 400) ausgelöst.
+ Sie sollten ein Token nicht wiederholt bei verschiedenen `Start`-Operationen verwenden, da Sie unvorhersehbare Ergebnisse von Amazon Rekognition erhalten.

Die Antwort auf die `StartLabelDetection`-Operation ist eine Auftrags-ID (`JobId`). Verwenden Sie `JobId`, um Anforderungen zu verfolgen und die Analyseergebnisse zu erhalten, nachdem Amazon Rekognition Video den Abschlussstatus im Amazon-SNS-Thema veröffentlicht hat. Beispiel:

```
{"JobId":"270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1784ca90fc180e3"}
```

Wenn Sie zu viele Aufträge gleichzeitig starten, lösen Aufrufe von `StartLabelDetection` eine `LimitExceededException` (HTTP-Statuscode: 400) aus, bis die Anzahl der gleichzeitig ausgeführten Aufträge unter dem Amazon-Rekognition-Servicelimit liegt. 

Wenn Sie feststellen, dass `LimitExceededException`-Ausnahmen bei Spitzenaktivitäten ausgelöst werden, empfiehlt sich für die Verwaltung eingehender Anforderungen die Verwendung einer Amazon-SQS-Warteschlange. Wenden Sie sich an den AWS Support, wenn Sie feststellen, dass Ihre durchschnittliche Anzahl gleichzeitiger Anfragen nicht von einer Amazon SQS SQS-Warteschlange verwaltet werden kann und Sie immer noch Ausnahmen erhalten`LimitExceededException`. 

## Abrufen des Abschlussstatus einer Amazon-Rekognition-Video-Analyseanforderungs
<a name="api-video-get-status"></a>

Amazon Rekognition Video sendet eine Benachrichtigung über den Abschluss der Analyse an das registrierte Amazon-SNS-Thema. Die Benachrichtigung enthält die Auftrags-ID und den Erledigungsstatus der Operation in einer JSON-Zeichenfolge. Eine erfolgreiche Videoanalyseanforderung hat einen Status `SUCCEEDED`. Das folgende Ergebnis zeigt z. B. die erfolgreiche Abarbeitung eines Label-Erkennungsauftrags.

```
{
    "JobId": "270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1nnnnnnnnnnnn",
    "Status": "SUCCEEDED",
    "API": "StartLabelDetection",
    "JobTag": "DetectingLabels",
    "Timestamp": 1510865364756,
    "Video": {
        "S3ObjectName": "video.mp4",
        "S3Bucket": "amzn-s3-demo-bucket"
    }
}
```

Weitere Informationen finden Sie unter [Referenz: Videoanalyse-Ergebnisbenachrichtigung](video-notification-payload.md).

Um die Statusinformationen zu erhalten, die von Amazon Rekognition Video im Amazon-SNS-Thema veröffentlicht werden, verwenden Sie eine der folgenden Optionen:
+ **AWS Lambda** – Sie können eine AWS Lambda -Funktion abonnieren, die Sie in ein Amazon-SNS-Thema schreiben. Die Funktion wird aufgerufen, wenn Amazon Rekognition das Amazon-SNS-Thema benachrichtigt, dass die Anforderung abgeschlossen ist. Verwenden Sie eine Lambda-Funktion, wenn Sie serverseitigen Code zur Verarbeitung der Ergebnisse einer Videoanalyseanforderung benötigen. Sie können beispielsweise serverseitigen Code verwenden, um das Video mit Anmerkungen zu versehen oder um einen Bericht über die Videoinhalte zu erstellen, bevor die Informationen an eine Client-Anwendung zurückgegeben werden. Wir empfehlen auch die serverseitige Verarbeitung von großen Videos, da die Amazon-Rekognition-API große Datenmengen zurückliefern kann. 
+ **Amazon Simple Queue Service** – Sie können eine Amazon SQS-Warteschlange für ein Amazon-SNS-Thema abonnieren. Sie fragen dann die Amazon-Simple-Queue-Service-Warteschlange ab, um den von Amazon Rekognition veröffentlichten Abschlussstatus abzurufen, wenn eine Videoanalyseanforderung abgeschlossen ist. Weitere Informationen finden Sie unter [Analysieren eines in einem Amazon S3-Bucket gespeicherten Videos mit Java oder Python (SDK)](video-analyzing-with-sqs.md). Verwenden Sie eine Amazon-SQS-Warteschlange, wenn Sie Amazon-Rekognition-Video-Operationen nur von einer Client-Anwendung aus aufrufen wollen. 

**Wichtig**  
Wir raten davon ab, den Status der Auftragserfüllung durch wiederholtes Aufrufen der Amazon-Rekognition-Video-`Get`-Operation zu ermitteln. Der Grund hierfür ist, dass Amazon Rekognition Video die `Get`-Operation drosselt, wenn zu viele Anforderungen generiert werden. Wenn Sie mehrere Videos gleichzeitig verarbeiten, ist es einfacher und effizienter, eine SQS-Warteschlange für die Benachrichtigung über die Fertigstellung zu überwachen, als Amazon Rekognition Video für den Status jedes einzelnen Videos abzufragen.

## Analyseergebnisse von Amazon Rekognition Video abrufen
<a name="api-video-get"></a>

 Um die Ergebnisse einer Videoanalyseanforderung zu erhalten, stellen Sie zunächst sicher, dass der Abschlussstatus, der aus dem Amazon-SNS-Thema abgerufen wird, `SUCCEEDED` lautet. Rufen Sie dann `GetLabelDetection` auf, wodurch der Wert `JobId` übergeben wird, den `StartLabelDetection` zurückgibt. Die JSON-Ausgabe sieht folgendermaßen oder ähnlich aus:

```
{
    "JobId": "270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1784ca90fc180e3",
    "MaxResults": 10,
    "SortBy": "TIMESTAMP"
}
```

JobId ist die Kennung für den Videoanalysevorgang. Da die Videoanalyse große Datenmengen erzeugen kann, geben Sie mit `MaxResults` die maximale Anzahl der Ergebnisse an, die in einer einzigen Get-Operation zurückgegeben werden soll. Der Standardwert von `MaxResults` beträgt 1000. Wenn Sie einen größeren Wert als 1.000 angeben, wird die maximale Anzahl von 1.000 Ergebnissen zurückgegeben. Wenn die Operation nicht die gesamte Ergebnismenge zurückgibt, wird in der Antwort der Operation ein Paginierungs-Token für die nächste Seite zurückgegeben. Wenn Sie ein Paginierung-Token aus einer vorherigen Get-Anforderung haben, verwenden Sie es mit `NextToken` um die nächste Seite der Ergebnisse zu erhalten.

**Anmerkung**  
Amazon Rekognition behält die Ergebnisse einer Videoanalyse für 7 Tage bei. Nach dieser Zeit können Sie die Analyseergebnisse nicht mehr abrufen.

Die `GetLabelDetection` Operation Response JSON ist ähnlich wie folgt:

```
{
    "Labels": [
        {
            "Timestamp": 0,
            "Label": {
                "Instances": [],
                "Confidence": 60.51791763305664,
                "Parents": [],
                "Name": "Electronics"
            }
        },
        {
            "Timestamp": 0,
            "Label": {
                "Instances": [],
                "Confidence": 99.53411102294922,
                "Parents": [],
                "Name": "Human"
            }
        },
        {
            "Timestamp": 0,
            "Label": {
                "Instances": [
                    {
                        "BoundingBox": {
                            "Width": 0.11109819263219833,
                            "Top": 0.08098889887332916,
                            "Left": 0.8881205320358276,
                            "Height": 0.9073750972747803
                        },
                        "Confidence": 99.5831298828125
                    },
                    {
                        "BoundingBox": {
                            "Width": 0.1268676072359085,
                            "Top": 0.14018426835536957,
                            "Left": 0.0003282368124928324,
                            "Height": 0.7993982434272766
                        },
                        "Confidence": 99.46029663085938
                    }
                ],
                "Confidence": 99.53411102294922,
                "Parents": [],
                "Name": "Person"
            }
        },
        .
        .   
        .

        {
            "Timestamp": 166,
            "Label": {
                "Instances": [],
                "Confidence": 73.6471176147461,
                "Parents": [
                    {
                        "Name": "Clothing"
                    }
                ],
                "Name": "Sleeve"
            }
        }
        
    ],
    "LabelModelVersion": "2.0",
    "JobStatus": "SUCCEEDED",
    "VideoMetadata": {
        "Format": "QuickTime / MOV",
        "FrameRate": 23.976024627685547,
        "Codec": "h264",
        "DurationMillis": 5005,
        "FrameHeight": 674,
        "FrameWidth": 1280
    }
}
```

Mit den `GetLabelDetection`- und `GetContentModeration`-Operationen können Sie die Analyseergebnisse nach Zeitstempel oder Labelnamen sortieren. Sie können die Ergebnisse auch nach Videosegment oder nach Zeitstempel zusammenfassen. 

Sie können die Ergebnisse nach der Erkennungszeit (Millisekunden vom Anfang des Videos) oder alphabetisch nach der erkannten Entität (Objekt, Gesicht, Prominenter, Moderationslabel oder Person) sortieren. Um nach der Zeit zu sortieren, setzen Sie den Wert des Eingabeparameters `SortBy` auf `TIMESTAMP`. Wenn `SortBy` nicht angegeben ist, wird standardmäßig nach der Zeit sortiert. Das vorhergehende Beispiel ist nach der Zeit sortiert. Um nach Entität zu sortieren, verwenden Sie den Eingabeparameter `SortBy` mit dem Wert, der für die von Ihnen durchgeführte Operation geeignet ist. Um z. B. bei einem Aufruf von `GetLabelDetection` nach erkanntem Label zu sortieren, verwenden Sie den Wert `NAME`.

Um Ergebnisse nach Zeitstempel zu aggregieren, setzen Sie den Wert des `AggregateBy`-Parameters auf `TIMESTAMPS`. Um nach Videosegmenten zu aggregieren, legen Sie den Wert von `AggregateBy` auf `SEGMENTS` fest. Der `SEGMENTS`-Aggregationsmodus aggregiert die Labels im Laufe der Zeit und `TIMESTAMPS` gibt gleichzeitig den Zeitstempel an, bei dem ein Label erkannt wurde. Dabei werden 2-FPS-Sampling und Frame-Ausgabe verwendet (Hinweis: Diese aktuelle Sampling-Rate kann sich ändern, es sollten keine Annahmen über die aktuelle Sampling-Rate getroffen werden). Wenn kein Wert angegeben wird, ist die Standardaggregationsmethode `TIMESTAMPS`. 