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:
-
Fehlende Berechtigungen
-
Die Konfiguration der Image-Generierung ist falsch
-
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
-
Vergewissern Sie sich, dass der
putKinesisVideoEventMetadataAnruf erfolgreich war.Die
putKinesisVideoEventMetadataMethode 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.
-
Überprüfen Sie die lokal generierte MKV-Datei
Vergewissern Sie sich, dass das Producer-SDK oder die Beispielanwendung die Tags korrekt angehängt hat.
-
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/directoryAnmerkung
Das SDK erstellt kein neues Verzeichnis, wenn der Pfad nicht existiert. Erstellen Sie den Ordner, falls erforderlich.
-
Führen Sie die Anwendung erneut aus. Sie sollten sehen, dass
.mkvDateien in das angegebene Ausgabeverzeichnis geschrieben werden. -
Überprüfen Sie den Inhalt, um sicherzustellen, dass das Tag vorhanden ist, indem Sie MKVTool Nix oder eine andere Software verwenden.
-
Installieren Sie MKVTool Nix:
brew install mkvtoolnix -
Führen Sie MKVTool Nix mit einer der
.mkvDateien im Ausgabeverzeichnis aus.mkvinfo -v ./path/to/video/file -
Überprüfen Sie die MKVTool Nix-Ausgabe. Wenn die
KinesisVideoStream::PutFragmentMetadataProducer-SDK-Methode korrekt aufgerufen wurde, sollte das folgende MKV-Tag angezeigt werden.|+ Tags | + Tag | + Simple | + Name: AWS_KINESISVIDEO_IMAGE_GENERATIONAnmerkung
Die Tags gehören zum Cluster davor.
-
-
Wenn das MKV-Tag nicht vorhanden ist, stellen Sie sicher, dass die
KinesisVideoStream::PutEventMetadataProducer-SDK-Methode mit demSTREAM_EVENT_TYPE_IMAGE_GENERATIONArgument aufgerufen wurde und dass sie einen Erfolgscode (0) zurückgegeben hat.
-