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.
Öffnen Sie die Kinesis Video Streams Streams-Konsole
Der vom Raspberry Pi gesendete Videostream erscheint in der Konsole.
Anmerkung
Es kann einige Sekunden dauern, bis das Video in der Konsole angezeigt wird.
Sobald der Stream abgespielt wird, können Sie mit den folgenden Funktionen in der Konsole experimentieren:
-
Führen Sie mit den Navigationssteuerelementen im Bereich Video preview (Video-Vorschau) einen Rück- oder Vorlauf des Streams durch.
-
Überprüfen Sie im Abschnitt Stream-Informationen den Codec, die Auflösung und die Bitrate des Streams. Die Werte für Auflösung und Bitrate sind auf dem Raspberry Pi bewusst niedrig eingestellt, um die Bandbreitennutzung für dieses Tutorial zu minimieren.
Um die CloudWatch Amazon-Metriken anzuzeigen, die für Ihren Stream erstellt werden, wählen Sie Stream-Metriken anzeigen in CloudWatch.
-
Beachten Sie unter Data retention period (Aufbewahrungszeitraum), dass der Videostream einen Tag lang aufbewahrt wird. Sie können diesen Wert bearbeiten und auf No data retention (Keine Datenaufbewahrung) einstellen oder einen Wert von einem Tag bis mehrere Jahre festlegen.
-
Beachten Sie unter Serverseitige Verschlüsselung, dass Ihre Daten im Ruhezustand mit einem Schlüssel verschlüsselt werden, der von AWS Key Management Service (AWS KMS) verwaltet wird.
Probleme bei der Wiedergabe
Im Folgenden finden Sie einige häufig auftretende Wiedergabeprobleme und deren Behebung.
Keine Medien, aber es gibt PERSISTED Acks in den Protokollen
Wenn Sie Acks PERSISTED in den Protokollen sehen, hat Kinesis Video Streams die Medien, die von hochgeladen wurden, erfolgreich aufgenommen und gespeichert. kvssink
Von Kinesis Video Streams erhaltene Acks sehen so aus. Schauen Sie JSON sich in der den Wert für den "EventType"
Schlüssel an.
{"EventType":"RECEIVED","FragmentTimecode":252200,"FragmentNumber":"12345678901234567890123456724587702494771079511"}
{"EventType":"BUFFERING","FragmentTimecode":252467,"FragmentNumber":"12345678901234567890123456781729223736853277017"}
{"EventType":"RECEIVED","FragmentTimecode":252467,"FragmentNumber":"12345678901234567890123456781729223736853277017"}
{"EventType":"BUFFERING","FragmentTimecode":253000,"FragmentNumber":"12345678901234567890123456738870744847093249408"}
{"EventType":"PERSISTED","FragmentTimecode":252200,"FragmentNumber":"12345678901234567890123456724587702494771079511"}
{"EventType":"PERSISTED","FragmentTimecode":252467,"FragmentNumber":"1234567890123456789012345671729223736853277017"}
Auflösung
Warten Sie in der Kinesis Video Streams Streams-Konsole ein oder zwei Minuten und verwenden Sie dann den Doppelpfeil nach rechts. Wenn kein Medium angezeigt wird, überprüfen Sie, ob Ihr Stream in die richtige Region gesendet wird, und überprüfen Sie die Schreibweise des Streamnamens. Du findest diese Informationen in den Protokollen.
Geben Sie eine Region an kvssinkWeitere Informationen darüber, wie kvssink bestimmt, welche Region verwendet werden soll, finden Sie unter.
Das Laden des Mediums dauert sehr lange AWS Management Console
Wichtig
Das Wiedergabeerlebnis auf der Konsole unterscheidet sich vom HLS DASH Wiedergabeerlebnis. Verwenden Sie auch die von Media Player gehostete Beispielwebseite
Das langsame Laden von Medien in die Konsole hängt häufig mit der Videokodierung und Fragmentierung zusammen.
Grundlagen der Videokodierung:
-
H.264- und H.265-Encoder verwenden Key-Frames (I-Frames) und Predicted-Frames (P-Frames) für eine effiziente Komprimierung.
-
Key-Frames enthalten vollständige Bilddaten, während P-Frames nur Änderungen gegenüber früheren Frames enthalten.
-
Das „Key-Frame-Intervall“ bestimmt, wie oft Keyframes im Videostream vorkommen.
Fragmentierung beim Streaming:
-
In Kinesis Video Streams beginnen neue Fragmente mit jedem Keyframe. Weitere Informationen finden Sie unter Kinesis Video Streams Streams-Datenmodell.
-
Die Fragmentlänge (in Sekunden) kann wie folgt geschätzt werden: Key-Frame-Intervall — Bildrate
Beispiel:
Für einen Stream mit einem Keyframe-Intervall von 30 Bildern pro Sekunde und einer Bildrate von 15 Bildern pro Sekunde:
Fragmentlänge = 30 ÷15 = 2 Sekunden
Aufgrund größerer Keyframe-Intervalle erhöhen längere Fragmente die Latenz bei Streaming-Medien.
Auflösung
Um die Ladezeiten zu verbessern, sollten Sie erwägen, das Keyframe-Intervall zu reduzieren. Dadurch entstehen kürzere Fragmente, was die Latenz verringert, aber auch die Größe der Videodatei erhöht.
Für das x264enc
GStreamer Element können Sie das Keyframe-Intervall explizit über die key-int-max
folgende Eigenschaft festlegen:
x264enc bframes=0 key-int-max=60
Beachten Sie bei der Überprüfung der Protokollausgabe, wie oft der hochladende Client Daten ACKs von Kinesis Video Streams empfängt. Je mehr Keyframes generiert werden, desto mehr ACKs werden zurückgegeben.
Das Medium ist verzerrt oder weist Artefakte auf
Um dieses Problem zu beheben, stellen Sie sicher, dass alle Kabel fest angeschlossen sind. Überprüfen Sie die Ausgabe von libcamera-hello
(oder raspistill
für ältere Pi-Kameras) für Kameramodule.
Ersetzen Sie es in Ihrer GStreamer Pipeline kvssink
durch autovideosink
oder matroskamux
undfilesink
. Beispielsweise:
... x264enc tune=zerolatency speed-preset=ultrafast bframes=0 key-int-max=60 byte-stream=true ! h264parse ! matroskamux ! filesink location=output.mkv
Prüfen Sie anhand der Ausgabedatei filesink
oder des Media Players, der sich bei der Verwendung autovideosink
öffnet, ob die Artefakte ebenfalls vorhanden sind.
Überprüfen Sie auch die Ausgabe der folgenden Pipeline:
gst-launch-1.0 autovideosrc ! videoconvert ! autovideosink
Durch das Hinzufügen von Elementen zu Ihrer Pipeline, z. B. Dewarp
Prüfen Sie die unterstützten Ausgabecodecs für Ihre Kamera und passen Sie die Elemente nach Bedarf an.
Wenn Ihre USB Kamera beispielsweise nur die JPEG Ausgabe unterstützt, müssen Sie die jpegdec
Elemente jpegparse
und verwenden, um das Medium zu transformieren, bevor Sie es mit H.264 kodieren. x264enc
Suchen Sie in den GStreamer Foren nach Unterstützung für andere Benutzer mit ähnlichen Pipelines und/oder Webcam-Setups.