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.
Beispiel: Das SDK, das GStreamer-Plugin des Herstellers von Kinesis Video Streams — kvssink
In diesem Thema wird beschrieben, wie das Amazon Kinesis Video Streams Producer SDK zur Verwendung als GStreamer-Plugin erstellt wird.
Themen
GStreamer
Das GStreamer-Plug-In verwaltet automatisch die Übertragung Ihres Videostreams zu Kinesis Video Streams, indem es die vom Kinesis Video Streams Producer SDK bereitgestellten Funktionen in einem GStreamer-Sinkelement kapselt. kvssink Das GStreamer-Framework stellt eine verwaltete Standardumgebung für das Erstellen des Medienflusses von einem Gerät wie einer Kamera auf eine andere Videoquelle bereit, wo der Stream dann weiter verarbeitet, gerendert oder gespeichert werden kann.
Die GStreamer-Pipeline besteht in der Regel aus einem Link zwischen einer Quelle (Videokamera) und dem Sink-Element (entweder einem Player zum Rendern des Videos oder einem Speicher für den Offline-Abruf). In diesem Beispiel verwenden Sie das Producer SDK-Element als Sink bzw. Medienziel für die Videoquelle (Webcam oder IP-Kamera). Das Plugin-Element, das das SDK kapselt, sendet dann den Videostream an Kinesis Video Streams.
In diesem Thema wird beschrieben, wie eine GStreamer-Medienpipeline erstellt wird, die in der Lage ist, Videos von einer Videoquelle wie einer Webcam oder einem RTSP-Stream zu streamen, die in der Regel über Zwischenkodierungsstufen (mithilfe H.264 der Codierung) mit Kinesis Video Streams verbunden sind. Wenn Ihr Videostream als Kinesis-Videostream verfügbar ist, können Sie ihn Sehen Sie sich die Ausgabe von Kameras mithilfe der Parser-Bibliothek an für die weitere Verarbeitung, Wiedergabe, Speicherung oder Analyse Ihres Videostreams verwenden.
Laden Sie das GStreamer-Element herunter, erstellen Sie es und konfigurieren Sie es
Das Beispiel für das GStreamer-Plug-In ist im Producer SDK von Kinesis Video Streams C++ enthalten. Weitere Informationen zu den Voraussetzungen und Downloadoptionen für das SDK finden Sie unter Laden Sie den C++ Producer-Bibliothekscode herunter und konfigurieren Sie ihn.
Sie können das Producer-SDK GStreamer-Sink als dynamische Bibliothek auf macOS, Ubuntu, Raspberry Pi oder Windows erstellen. Das GStreamer-Plugin befindet sich in Ihrem build-Verzeichnis. Um dieses Plugin zu laden, muss es sich in Ihrem befinden. GST_PLUGIN_PATH Führen Sie den folgenden Befehl aus:
export GST_PLUGIN_PATH=`pwd`/build
Anmerkung
Unter macOS können Sie Videos nur von einer Netzwerkkamera streamen, wenn Sie GStreamer in einem Docker-Container ausführen. Video-Streaming von einer USB-Kamera auf macOS in einem Docker-Container wird nicht unterstützt.
Führen Sie das GStreamer-Element aus
Verwenden Sie den Befehl, um GStreamer mit dem Kinesis Video Streams Producer SDK-Element als Senke auszuführen. gst-launch-1.0 Verwenden Sie Upstream-Elemente, die für die Verwendung durch das GStreamer-Plugin geeignet sind. Zum Beispiel v4l2srckvssink als Sink (Endziel der Pipeline) an, um Videos an das Producer SDK zu senden.
Zusätzlich zur Bereitstellung von Anmeldeinformationen und einer Region verfügt das kvssink Element über den folgenden erforderlichen Parameter:
-
stream-name— Der Name der Kinesis Video Streams als Ziel.
Weitere Informationen zu optionalen kvssink-Parametern finden Sie unter Referenz zu den GStreamer-Elementparametern.
Die neuesten Informationen zu GStreamer-Plugins und -Parametern finden Sie unter GStreamer-Plugins. gst-inspect-1.0 gefolgt vom Namen eines GStreamer-Elements oder -Plug-ins verwenden, um dessen Informationen auszudrucken und zu überprüfen, ob sie auf Ihrem Gerät verfügbar sind:
gst-inspect-1.0 kvssink
Wenn das Erstellen kvssink fehlgeschlagen ist oder GST_PLUGIN_PATH nicht richtig eingestellt ist, sieht Ihre Ausgabe ungefähr so aus:
No such element or plugin 'kvssink'
Beispiel für GStreamer-Startbefehle
Die folgenden Beispiele zeigen, wie Sie das kvssink GStreamer-Plugin verwenden, um Videos von verschiedenen Gerätetypen zu streamen.
Beispiel 1: Streamen Sie Videos von einer RTSP-Kamera auf Ubuntu
Mit dem folgenden Befehl wird eine GStreamer-Pipeline auf Ubuntu erstellt, die von einer RTSP-Netzwerkkamera mithilfe des rtspsrc
gst-launch-1.0 -v rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="YourStreamName" storage-size=128
Beispiel 2: Video von einer USB-Kamera auf Ubuntu kodieren und streamen
Mit dem folgenden Befehl wird eine GStreamer-Pipeline auf Ubuntu erstellt, die den Stream von einer USB-Kamera im H.264 Format kodiert und an Kinesis Video Streams streamt. In diesem Beispiel wird das GStreamer-Plugin v4l2src verwendet.
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! x264enc bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
Beispiel 3: Streamen Sie vorcodiertes Video von einer USB-Kamera auf Ubuntu
Mit dem folgenden Befehl wird eine GStreamer-Pipeline auf Ubuntu erstellt, die Videos, deren H.264 Format die Kamera bereits codiert hat, in Kinesis Video Streams streamt. In diesem Beispiel wird das GStreamer-Plugin v4l2src verwendet.
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! h264parse ! video/x-h264,stream-format=avc,alignment=au ! kvssink stream-name="plugin" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
Beispiel 4: Streamen Sie Videos von einer Netzwerkkamera auf macOS
Mit dem folgenden Befehl wird eine GStreamer-Pipeline unter macOS erstellt, die Videos von einer Netzwerkkamera an Kinesis Video Streams streamt. In diesem Beispiel wird das rtspsrc
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
Beispiel 5: Video von einer Netzwerkkamera unter Windows streamen
Mit dem folgenden Befehl wird unter Windows eine GStreamer-Pipeline erstellt, die Videos von einer Netzwerkkamera an Kinesis Video Streams streamt. In diesem Beispiel wird das rtspsrc
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
Beispiel 6: Video von einer Kamera auf dem Raspberry Pi streamen
Der folgende Befehl erstellt eine GStreamer-Pipeline auf dem Raspberry Pi, die Videos an Kinesis Video Streams streamt. In diesem Beispiel wird das GStreamer-Plugin https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! omxh264enc control-rate=1 target-bitrate=5120000 periodicity-idr=45 inline-header=FALSE ! h264parse ! video/x-h264,stream-format=avc,alignment=au,width=640,height=480,framerate=30/1,profile=baseline ! kvssink stream-name="YourStreamName" access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
Beispiel 7: Streamen Sie sowohl Audio als auch Video in Raspberry Pi und Ubuntu
Erfahren Sie, wie Sie den Befehl gst-launch-1.0 ausführen, um das Streamen von Audio und Video in Ubuntu zu starten. Raspberry-PI
Beispiel 8: Streamen Sie sowohl Audio als auch Video von Gerätequellen in macOS
Erfahren Sie, wie Sie den gst-launch-1.0-Befehl ausführen, um das Streamen von Audio und Video in MacOS zu starten
Beispiel 9: Laden Sie eine MKV-Datei hoch, die sowohl Audio als auch Video enthält
Erfahren Sie, wie Sie den Befehl gst-launch-1.0 ausführen, um eine MKV-Datei hochzuladen, die sowohl Audio als auch Video enthält
Führen Sie das GStreamer-Element in einem Docker-Container aus
Docker ist eine Plattform für die Entwicklung, Bereitstellung und das Ausführen von Anwendungen mithilfe von Containern. Durch die Verwendung von Docker zur Erstellung der GStreamer-Pipeline wird die Betriebsumgebung für Kinesis Video Streams standardisiert, wodurch die Erstellung und Verwendung der Anwendung optimiert wird.
So installieren und konfigurieren Sie Docker:
Nach der Installation von Docker können Sie das Kinesis Video Streams C++ Producer SDK (und das GStreamer-Plugin) mithilfe eines der unten angegebenen Befehle aus der Amazon Elastic Container Registry herunterladen. docker
pull
Gehen Sie wie folgt vor, um GStreamer mit dem Kinesis Video Streams Producer SDK-Element als Senke in einem Docker-Container auszuführen:
Themen
Authentifizieren Sie Ihren Docker-Client
Authentifizieren Sie Ihren Docker-Client bei der Amazon-ECR-Registrierung, aus der Sie Ihr Image abrufen möchten. Sie müssen für jede verwendete Registrierung Authentifizierungstoken erhalten. Die Token sind 12 Stunden lang gültig. Weitere Informationen finden Sie unter Registry-Authentifizierung im Benutzerhandbuch zu Amazon-Elastic-Container-Registry.
Beispiel: Authentifizieren mit Amazon ECR
Um sich bei Amazon ECR zu authentifizieren, kopieren Sie den folgenden Befehl und fügen Sie ihn ein, wie in der Abbildung gezeigt.
sudo aws ecr get-login-password --region us-west-2 | docker login -u AWS --password-stdin https://546150905175.dkr.ecr.us-west-2.amazonaws.com
Bei erfolgreicher Ausführung wird als Ausgabe Login Succeeded gedruckt.
Herunterladen des Docker-Images für Ubuntu, macOS, Windows oder Raspberry Pi
Verwenden Sie zum Herunterladen des Docker-Images in Ihre Docker-Umgebung abhängig vom verwendeten Betriebssystem einen der folgenden Befehle:
Herunterladen des Docker-Images für Ubuntu
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
Herunterladen des Docker-Images für macOS
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
Herunterladen des Docker-Images für Windows
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-windows:latest
Herunterladen des Docker-Images für Raspberry Pi
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi:latest
Verwenden Sie den folgenden Befehl, um zu überprüfen, dass das Image erfolgreich hinzugefügt wurde:
docker images
Führen Sie das Docker-Image aus
Führen Sie abhängig vom verwendeten Betriebssystem einen der folgenden Befehle aus, um das Docker-Image auszuführen:
Führen Sie das Docker-Image auf Ubuntu aus
sudo docker run -it --network="host" --device=/dev/video0 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
Führen Sie das Docker-Image auf macOS aus
sudo docker run -it --network="host" 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
Führen Sie das Docker-Image unter Windows aus
docker run -it 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-windowsAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYRTSP_URLSTREAM_NAME
Führen Sie das Docker-Image auf Raspberry Pi aus
sudo docker run -it --device=/dev/video0 --device=/dev/vchiq -v /opt/vc:/opt/vc 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi /bin/bash
Docker startet den Container und zeigt Ihnen eine Eingabeaufforderung für die Verwendung von Befehlen innerhalb des Containers.
Legen Sie im Container die Umgebungsvariablen mit dem folgenden Befehl fest:
export LD_LIBRARY_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH export PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/bin:$PATH export GST_PLUGIN_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$GST_PLUGIN_PATH
Starten Sie das Streaming, um die gst-launch-1.0 zu kvssink verwenden, um eine für Ihr Gerät und Ihre Videoquelle geeignete Pipeline auszuführen. Beispiele für Pipelines finden Sie unterBeispiel für GStreamer-Startbefehle.