View a markdown version of this page

Fehlerbehebung - Amazon Kinesis Video Streams

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.

Fehlerbehebung

Bilder wurden nicht an den Amazon S3 S3-Bucket geliefert

Um dieses Problem zu beheben, gibt es einige Dinge, auf die Sie achten sollten:

  1. Fehlende Berechtigungen

  2. Die Konfiguration der Image-Generierung ist falsch

  3. Das Tag wurde dem Fragment nicht hinzugefügt

Fehlende Berechtigungen

Wenn Sie einen vom Kunden verwalteten KMS-Schlüssel verwenden, stellen Sie sicher, dass die Rolle, die die PutMedia Aufrufe ausführt (Uploader), über die entsprechenden Verschlüsselungs- und Entschlüsselungsberechtigungen verfügt und Zugriff auf den Amazon S3 S3-Bucket hat, und zwar wie folgt:

  • kms:Encrypt

  • kms:GenerateDataKey

  • kms:Decrypt

  • s3:PutObject

Weitere Informationen finden Sie unter Wie fange ich mit der serverseitigen Verschlüsselung an?.

Überprüfen Sie das Ziel

Verwenden Sie die AWS CLI , um die DescribeImageGenerationConfiguration API für Ihren Stream aufzurufen.

aws kinesisvideo describe-image-generation-configuration \ --stream-name "demo-stream"

Überprüfe das DestinationConfig in der Antwort und vergewissere dich, dass es korrekt aussieht.

Stellen Sie sicher, dass das Tag zur Bilderzeugung dem Fragment hinzugefügt wurde

  1. Vergewissern Sie sich, dass der putKinesisVideoEventMetadata Anruf erfolgreich war.

    Die putKinesisVideoEventMetadata Methode gibt bei Erfolg den Statuscode 0 zurück. Wir empfehlen, die Rückgabewerte der Funktionen auf 0 zu überprüfen. Wenn ein Statuscode ungleich Null zurückgegeben wird, konvertieren Sie ihn in einen Hexadezimalwert und suchen Sie Fehlercodereferenz nach weiteren Informationen.

    Stellen Sie sicher, dass Sie die Fehlerprotokolle aktiviert haben, und überprüfen Sie die Protokolle auf andere Fehler in der Anwendung. Überprüfen Sie das Aufrufmuster für die Frame-Einreichung Ihrer Anwendung und vergleichen Sie es mit der empfohlenen Implementierung:Hinzufügen von Tags zur Bilderzeugung zu Fragmenten.

  2. Überprüfen Sie die lokal generierte MKV-Datei

    Vergewissern Sie sich, dass das Producer-SDK oder die Beispielanwendung die Tags korrekt angehängt hat.

    1. Legen Sie die KVS_DEBUG_DUMP_DATA_FILE_DIR-Umgebungsvariable fest. Wenn dieser Wert festgelegt ist, schreibt das Producer-SDK die Mediendateien, die es an Kinesis Video Streams gesendet hätte, an den angegebenen Speicherort.

      export KVS_DEBUG_DUMP_DATA_FILE_DIR=/path/to/output/directory
      Anmerkung

      Das SDK erstellt kein neues Verzeichnis, wenn der Pfad nicht existiert. Erstellen Sie den Ordner, falls erforderlich.

    2. Führen Sie die Anwendung erneut aus. Sie sollten sehen, dass .mkv Dateien in das angegebene Ausgabeverzeichnis geschrieben werden.

    3. Überprüfen Sie den Inhalt, um sicherzustellen, dass das Tag vorhanden ist, indem Sie MKVTool Nix oder eine andere Software verwenden.

      1. Installieren Sie MKVTool Nix: brew install mkvtoolnix

      2. Führen Sie MKVTool Nix mit einer der .mkv Dateien im Ausgabeverzeichnis aus.

        mkvinfo -v ./path/to/video/file
      3. Überprüfen Sie die MKVTool Nix-Ausgabe. Wenn die KinesisVideoStream::PutFragmentMetadata Producer-SDK-Methode korrekt aufgerufen wurde, sollte das folgende MKV-Tag angezeigt werden.

        |+ Tags | + Tag | + Simple | + Name: AWS_KINESISVIDEO_IMAGE_GENERATION
        Anmerkung

        Die Tags gehören zum Cluster davor.

    4. Wenn das MKV-Tag nicht vorhanden ist, stellen Sie sicher, dass die KinesisVideoStream::PutEventMetadata Producer-SDK-Methode mit dem STREAM_EVENT_TYPE_IMAGE_GENERATION Argument aufgerufen wurde und dass sie einen Erfolgscode (0) zurückgegeben hat.