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: SDK GStreamer Produzenten-Plugin für Kinesis Video Streams - kvssink
In diesem Thema wird beschrieben, wie der Amazon Kinesis Video Streams Streams-Producer SDK zur Verwendung als GStreamer Plugin erstellt wird.
Themen
GStreamer
Das GStreamer Plugin verwaltet automatisch die Übertragung Ihres Videostreams zu Kinesis Video Streams, indem es die vom Kinesis Video Streams Streams-Producer bereitgestellte Funktionalität SDK in einem GStreamer Senkenelement kapselt. kvssink
Das GStreamer Framework bietet eine verwaltete Standardumgebung für die Erstellung des Medienflusses von einem Gerät wie einer Kamera oder einer anderen Videoquelle zur weiteren Verarbeitung, zum Rendern oder Speichern.
Die GStreamer Pipeline besteht in der Regel aus der Verbindung zwischen einer Quelle (Videokamera) und dem Senkenelement (entweder ein Player zum Rendern des Videos oder ein Speicher für den Offline-Abruf). In diesem Beispiel verwenden Sie das SDK Producer-Element als Senke oder Medienziel für Ihre Videoquelle (Webcam oder IP-Kamera). Das Plugin-Element, das kapselt, sendet SDK dann den Videostream an Kinesis Video Streams.
In diesem Thema wird beschrieben, wie Sie eine GStreamer Medienpipeline aufbauen, die Video von einer Videoquelle, z. B. einer Webkamera oder einem RTSP Stream, streamen kann, die normalerweise über Zwischencodierungsstufen (mithilfe der H.264-Kodierung) 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 GStreamer Plugin-Beispiel ist im C++-Producer SDK von Kinesis Video Streams enthalten. Informationen zu den SDK Voraussetzungen und zum Herunterladen finden Sie unterLaden Sie den Code der C++-Producer-Bibliothek herunter und konfigurieren Sie ihn.
Sie können den 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 befindenGST_PLUGIN_PATH
. Führen Sie den folgenden Befehl aus:
export GST_PLUGIN_PATH=`pwd`/build
Anmerkung
Unter macOS können Sie nur Videos von einer Netzwerk-Kamera streamen, wenn sie GStreamer in einem Docker-Container ausgeführt werden. Das Streamen von Videos von einer USB Kamera auf macOS in einem Docker-Container wird nicht unterstützt.
Führe das Element aus GStreamer
Verwenden Sie GStreamer den gst-launch-1.0
Befehl, um das Kinesis Video Streams SDK Streams-Producer-Element als Senke zu verwenden. Verwenden Sie Upstream-Elemente, die für das zu verwendende GStreamer Plugin geeignet sind. Zum Beispiel v4l2src für v4l2-Gerätekvssink
als Senke (Endziel der Pipeline) an, um das Video an den Producer zu senden. SDK
Neben der Bereitstellung von Anmeldeinformationen und der Angabe einer Region verfügt das kvssink
Element über den folgenden erforderlichen Parameter:
-
stream-name
— Der Name des Ziels Kinesis Video Streams.
Weitere Informationen zu optionalen kvssink
-Parametern finden Sie unter GStreamerReferenz zu den Elementparametern.
Aktuelle Informationen zu GStreamer Plug-ins und Parametern finden Sie unter GStreamerPluginsgst-inspect-1.0
gefolgt vom Namen eines GStreamer Elements oder Plugins verwenden, um dessen Informationen auszudrucken und zu überprüfen, ob es auf Ihrem Gerät verfügbar ist:
gst-inspect-1.0 kvssink
Wenn das Erstellen kvssink
fehlgeschlagen PATH ist oder GST PLUGIN _ _ nicht richtig eingestellt ist, sieht Ihre Ausgabe ungefähr so aus:
No such element or plugin 'kvssink'
Beispiele 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 Video von einer RTSP Kamera auf Ubuntu
Der folgende Befehl erstellt unter Ubuntu eine GStreamer Pipeline, die mithilfe des GStreamerrtspsrc-Plugins
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 Kamera auf Ubuntu kodieren und streamen USB
Der folgende Befehl erstellt eine GStreamer Pipeline auf Ubuntu, die den Stream von einer USB Kamera im H.264-Format codiert und an Kinesis Video Streams streamt. In diesem Beispiel wird das v4l2src-Plugin 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 Kamera auf Ubuntu USB
Mit dem folgenden Befehl wird auf Ubuntu eine GStreamer Pipeline erstellt, die Videos, die die Kamera bereits im H.264-Format codiert hat, in Kinesis Video Streams streamt. In diesem Beispiel wird das v4l2src-Plugin 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: Video von einer Netzwerk-Kamera auf macOS streamen
Mit dem folgenden Befehl wird auf macOS eine GStreamer Pipeline erstellt, die Video von einer Netzwerkkamera zu Kinesis Video Streams streamt. In diesem Beispiel wird das GStreamerrtspsrc-Plugin
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: Streamen Sie Video von einer Netzwerk-Kamera unter Windows
Mit dem folgenden Befehl wird unter Windows eine GStreamer Pipeline erstellt, die Video von einer Netzwerk-Kamera zu Kinesis Video Streams streamt. In diesem Beispiel wird das GStreamerrtspsrc-Plugin
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: Streamen Sie Video von einer Kamera auf dem Raspberry Pi
Der folgende Befehl erstellt eine GStreamer Pipeline auf dem Raspberry Pi, die Video an Kinesis Video Streams streamt. In diesem Beispiel wird das GStreamerv4l2src-Plugin
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 gst-launch-1.0-Befehl ausführen, um das Streamen von Audio und Video in Raspberry Pi und Ubuntu zu starten
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 MKV eine 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, was die Erstellung und Verwendung der Anwendung optimiert.
So installieren und konfigurieren Sie Docker:
Nach der Installation von Docker können Sie den Kinesis Video Streams C++ Producer SDK (und das GStreamer Plug-in) mit einem der unten angegebenen docker
pull
Befehle aus der Amazon Elastic Container Registry herunterladen.
Gehen Sie wie GStreamer folgt vor, um das Kinesis Video Streams SDK Streams-Producer-Element als Senke in einem Docker-Container zu verwenden:
Themen
Authentifizieren Sie Ihren Docker-Client
Authentifizieren Sie Ihren Docker-Client bei der ECR Amazon-Registrierung, aus der Sie Ihr Image abrufen möchten. Sie müssen Authentifizierungstoken für jede verwendete Registrierung abrufen. Tokens sind 12 Stunden gültig. Weitere Informationen finden Sie unter Registry-Authentifizierung im Benutzerhandbuch zu Amazon-Elastic-Container-Registry.
Beispiel : Authentifizieren Sie sich bei Amazon ECR
Um sich bei Amazon zu authentifizierenECR, kopieren Sie den folgenden Befehl und fügen Sie ihn wie gezeigt ein.
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-windows
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
RTSP_URL
STREAM_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 Befehlszeile zur 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 kvssink
mithilfe der gst-launch-1.0
eine Pipeline auszuführen, die für Ihr Gerät und Ihre Videoquelle geeignet ist. Beispiele für Pipelines finden Sie unterBeispiele für GStreamer Startbefehle.