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.
Spielen Sie Medien aus Ihrem Kinesis-Videostream ab
Öffnen Sie die Kinesis Video 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üfe im Abschnitt Stream-Informationen den Codec, die Auflösung und die Bitrate des Streams. Die Auflösungs- und Bitratenwerte 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 unter. 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 bei Server-side 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 PERSISTED Acks in den Protokollen sehen, hat Kinesis Video Streams die Medien, die von hochgeladen wurden, erfolgreich aufgenommen und gespeichert. kvssink Die von Kinesis Video Streams erhaltenen Acks sehen so aus. Sehen Sie sich im JSON 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 ein oder zwei Minuten in der Kinesis Video Streams-Konsole und verwenden Sie dann den Doppelpfeil nach rechts. Wenn keine Medien angezeigt werden, ü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 für kvssink anWeitere Informationen darüber, wie kvssink bestimmt, welche Region verwendet werden soll, finden Sie unter.
Das Laden des Mediums in das AWS-Managementkonsole
Wichtig
Das Wiedergabeerlebnis auf der Konsole unterscheidet sich vom HLS- und DASH-Wiedergabeerlebnis. Verwenden Sie auch die im Media Player
Medien können aufgrund einer schlechten Netzwerkbandbreite oder eines eingeschränkten Geräts in der Konsole langsam geladen werden. Dies kann aber auch mit der Videokodierung und -fragmentierung zusammenhängen.
Grundlagen der Videokodierung:
-
H.264 und H.265 Encoder verwenden Key-Frames (I-Frames) und Predicted-Frames () für eine effiziente Komprimierung. P-Frames
-
Key-frames enthalten vollständige Bilddaten, enthalten aber P-frames nur Änderungen gegenüber früheren Frames.
-
Das „Keyframe-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-Datenmodell.
-
Die Fragmentlänge (in Sekunden) kann wie folgt geschätzt werden: Keyframe-Intervall ÷ Bildrate
Beispiel:
Für einen Stream mit einem Keyframe-Intervall von 30 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 verkürzen, sollten Sie erwägen, das Keyframe-Intervall zu reduzieren. Dadurch werden kürzere Fragmente erzeugt, 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 folgende Eigenschaft festlegen: key-int-max
x264enc bframes=0 key-int-max=60
Beachten Sie bei der Überprüfung der Protokollausgabe, wie oft der hochladende Client 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
Vergewissern Sie sich, dass alle Kabel fest angeschlossen sind, um dieses Problem zu beheben. Überprüfen Sie die Ausgabe von libcamera-hello (oder raspistill für ältere Pi-Kameras) für Kameramodule.
Ersetzen Sie in Ihrer GStreamer-Pipeline kvssink durch autovideosink oder matroskamux und. filesink Beispiel:
... x264enc tune=zerolatency speed-preset=ultrafast bframes=0 key-int-max=60 byte-stream=true ! h264parse ! matroskamux ! filesink location=output.mkv
Prüfen Sie in der Ausgabedatei von filesink oder dem Media Player, der bei der Verwendung geöffnet wirdautovideosink, ob die Artefakte ebenfalls vorhanden sind.
Überprüfen Sie auch die Ausgabe der folgenden Pipeline:
gst-launch-1.0 autovideosrc ! videoconvert ! autovideosink
Wenn Sie Elemente wie Dewarp zu Ihrer Pipeline hinzufügen
Überprü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 in H.264 die Verwendung umwandeln können. x264enc Suchen Sie in den GStreamer-Foren nach Unterstützung für andere Benutzer mit ähnlichen and/or Pipeline-Webcam-Setups.