

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.

# Erkennung benutzerdefinierter Labels in Videos
<a name="ex-video-extraction"></a>

Das folgende Beispiel zeigt, wie Sie `DetectCustomLabels` mit aus einem Video extrahierten Frames verwenden können. Der Code wurde mit Videodateien im *Mov*- und *MP4*-Format getestet.

**Verwendung von `DetectCustomLabels` mit erfassten Frames**

1. Falls Sie dies noch nicht getan haben, installieren und konfigurieren Sie den AWS CLI und den AWS SDKs. Weitere Informationen finden Sie unter [Schritt 4: Richten Sie das und ein AWS CLI AWS SDKs](su-awscli-sdk.md).

1. Stellen Sie sicher, dass Sie über `rekognition:DetectCustomLabels` und `AmazonS3ReadOnlyAccess`-Berechtigungen verfügen. Weitere Informationen finden Sie unter [Schritt 4: Richten Sie das und ein AWS CLI AWS SDKs](su-awscli-sdk.md).

1. Verwenden Sie den folgenden Beispielcode. Ändern Sie den Wert von `videoFile` in den Namen einer Videodatei. Ändern Sie den Wert von `projectVersionArn` in den Amazon-Ressourcennamen (ARN) Ihres Amazon Rekognition Custom Labels-Modells. 

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   Purpose
   Shows how to analyze a local video with an Amazon Rekognition Custom Labels model.
   """
   import argparse
   import logging
   import json
   import math
   import cv2
   import boto3
   
   from botocore.exceptions import ClientError
   
   logger = logging.getLogger(__name__)
   
   
   def analyze_video(rek_client, project_version_arn, video_file):
       """
       Analyzes a local video file with an Amazon Rekognition Custom Labels model.
       Creates a results JSON file based on the name of the supplied video file.
       :param rek_client: A Boto3 Amazon Rekognition client.
       :param project_version_arn: The ARN of the Custom Labels model that you want to use.
       :param video_file: The video file that you want to analyze.
       """
       
       custom_labels = []
       cap = cv2.VideoCapture(video_file)
       frame_rate = cap.get(5)  # Frame rate.
       while cap.isOpened():
           frame_id = cap.get(1)  # Current frame number.
           print(f"Processing frame id: {frame_id}")
           ret, frame = cap.read()
           if ret is not True:
               break
           if frame_id % math.floor(frame_rate) == 0:
               has_frame, image_bytes = cv2.imencode(".jpg", frame)
   
               if has_frame:
                   response = rek_client.detect_custom_labels(
                       Image={
                           'Bytes': image_bytes.tobytes(),
                       },
                       ProjectVersionArn=project_version_arn
                   )
   
               for elabel in response["CustomLabels"]:
                   elabel["Timestamp"] = (frame_id/frame_rate)*1000
                   custom_labels.append(elabel)
   
       print(custom_labels)
   
       with open(video_file + ".json", "w", encoding="utf-8") as f:
           f.write(json.dumps(custom_labels))
   
       cap.release()
   
   
   def add_arguments(parser):
       """
       Adds command line arguments to the parser.
       :param parser: The command line parser.
       """
   
       parser.add_argument(
           "project_version_arn", help="The ARN of the model that you want to use."
       )
   
       parser.add_argument(
           "video_file", help="The local path to the video that you want to analyze."
       )
   
   
   def main():
   
       logging.basicConfig(level=logging.INFO,
                           format="%(levelname)s: %(message)s")
   
       try:
           # Get command line arguments.
           parser = argparse.ArgumentParser(usage=argparse.SUPPRESS)
           add_arguments(parser)
           args = parser.parse_args()
   
           session = boto3.Session(profile_name='custom-labels-access')
           rekognition_client = session.client("rekognition")
   
           analyze_video(rekognition_client,
                        args.project_version_arn, args.video_file)
   
       except ClientError as err:
           print(f"Couldn't analyze video: {err}")
   
   
   if __name__ == "__main__":
       main()
   ```