

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: GStreamer-Plug-In für Kinesis Video Streams Producer SDK - kvssink
<a name="examples-gstreamer-plugin"></a>

In diesem Thema wird beschrieben, wie Sie das Amazon Kinesis Video Streams Streams-Producer-SDK zur Verwendung als GStreamer-Plugin erstellen. 

**Topics**
+ [Laden Sie das GStreamer-Element herunter, erstellen und konfigurieren Sie es](#examples-gstreamer-plugin-download)
+ [Führen Sie das GStreamer-Element aus](#examples-gstreamer-plugin-run)
+ [Beispiele für GStreamer-Startbefehle](#examples-gstreamer-plugin-launch)
+ [Führen Sie das GStreamer-Element in einem Docker-Container aus](#examples-gstreamer-plugin-docker)
+ [Referenz zu den GStreamer-Elementparametern](examples-gstreamer-plugin-parameters.md)

[GStreamer](https://gstreamer.freedesktop.org/) ist ein beliebtes Medien-Framework, das von mehreren Kameras und Videoquellen verwendet wird, um benutzerdefinierte Medien-Pipelines durch die Kombination modularer Plug-ins zu erstellen. Das Kinesis Video Streams GStreamer-Plugin optimiert die Integration Ihrer bestehenden GStreamer-Medienpipeline mit Kinesis Video Streams. Nach der Integration von GStreamer können Sie Videos von einer Webcam oder einer RTSP-Kamera (Real Time Streaming Protocol) an Kinesis Video Streams streamen, um sie in Echtzeit oder später wiederzugeben, zu speichern und weiter zu analysieren. 

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-Sink-Element 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 aufgebaut wird, die in der Lage ist, Video von einer Videoquelle wie einer Webkamera oder einem RTSP-Stream zu streamen, die in der Regel über Zwischencodierungsstufen (mithilfe von 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](parser-library.md) für die weitere Verarbeitung, Wiedergabe, Speicherung oder Analyse Ihres Videostreams verwenden.

![Funktionale Ansicht der GStreamer-Medien-Pipeline für das Streamen von Videos von einer Kamera auf den -Service.](http://docs.aws.amazon.com/de_de/kinesisvideostreams/latest/dg/images/gstreamer-pipeline.png)


## Laden Sie das GStreamer-Element herunter, erstellen und konfigurieren Sie es
<a name="examples-gstreamer-plugin-download"></a>

Das GStreamer-Plug-in-Beispiel ist im C\+\+-Producer-SDK von Kinesis Video Streams enthalten. Weitere Informationen zu den Voraussetzungen und Downloadoptionen für das SDK finden Sie unter [Laden Sie den Code der C\+\+-Producer-Bibliothek herunter und konfigurieren Sie ihn](producersdk-cpp-download.md).

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
<a name="examples-gstreamer-plugin-run"></a>

Verwenden Sie den Befehl, um GStreamer mit dem Kinesis Video Streams 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 [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) für v4l2-Geräte auf Linux-Systemen oder [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) für RTSP-Geräte. Geben Sie `kvssink` als Sink (Endziel der Pipeline) an, um Videos an das Producer SDK zu senden. 

Neben der [Bereitstellung von Anmeldeinformationen](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#credentials-to-kvssink) und der [Angabe einer Region](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#kvssink-region) hat das `kvssink` Element den folgenden erforderlichen Parameter:
+ `stream-name`— Der Name des Ziels Kinesis Video Streams.

Weitere Informationen zu optionalen `kvssink`-Parametern finden Sie unter [Referenz zu den GStreamer-Elementparametern](examples-gstreamer-plugin-parameters.md).

[Aktuelle Informationen zu GStreamer-Plugins und -Parametern finden Sie unter GStreamer-Plugins.](https://gstreamer.freedesktop.org/documentation/plugins_doc.html?gi-language=c) Sie können auch den Namen eines GStreamer-Elements oder -Plug-ins verwenden`gst-inspect-1.0`, 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` fehlschlägt oder GST\_PLUGIN\_PATH nicht richtig gesetzt ist, sieht Ihre Ausgabe ungefähr so aus:

```
No such element or plugin 'kvssink'
```

## Beispiele für GStreamer-Startbefehle
<a name="examples-gstreamer-plugin-launch"></a>

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
<a name="examples-gstreamer-plugin-launch-ex1"></a>

Mit dem folgenden Befehl wird eine GStreamer-Pipeline auf Ubuntu erstellt, die von einer RTSP-Netzwerkkamera mithilfe des [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html?gi-language=c)-GStreamer-Plugins streamt:

```
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
<a name="examples-gstreamer-plugin-launch-ex2"></a>

Der folgende Befehl erstellt eine GStreamer-Pipeline auf Ubuntu, 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.](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 ! 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
<a name="examples-gstreamer-plugin-launch-ex3"></a>

Der folgende Befehl erstellt eine GStreamer-Pipeline auf Ubuntu, die Videos, die die Kamera bereits im H.264 Format kodiert hat, in Kinesis Video Streams streamt. [In diesem Beispiel wird das GStreamer-Plugin v4l2src verwendet.](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page)

```
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
<a name="examples-gstreamer-plugin-launch-ex4"></a>

Der folgende Befehl erstellt eine GStreamer-Pipeline auf macOS, die Video von einer Netzwerkkamera zu Kinesis Video Streams streamt. In diesem Beispiel wird das [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page)-GStreamer-Plugin verwendet.

```
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
<a name="examples-gstreamer-plugin-launch-ex5"></a>

Mit dem folgenden Befehl wird eine GStreamer-Pipeline unter Windows erstellt, die Video von einer Netzwerk-Kamera zu Kinesis Video Streams streamt. In diesem Beispiel wird das [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page)-GStreamer-Plugin verwendet.

```
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
<a name="examples-gstreamer-plugin-launch-ex6"></a>

Der folgende Befehl erstellt eine GStreamer-Pipeline auf Raspberry Pi, die Video an Kinesis Video Streams streamt. In diesem Beispiel wird das GStreamer-Plugin [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) 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 ! 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
<a name="examples-gstreamer-plugin-launch-ex7"></a>

Erfahren Sie, wie Sie [den Befehl gst-launch-1.0 ausführen, um das Streaming von Audio und Video in Ubuntu zu starten](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/linux.md#running-the-gst-launch-10-command-to-start-streaming-both-audio-and-video-in-raspberry-pi-and-ubuntu). Raspberry-PI 

### Beispiel 8: Streamen Sie sowohl Audio als auch Video von Gerätequellen in macOS
<a name="examples-gstreamer-plugin-launch-ex8"></a>

Erfahren Sie, wie Sie den [gst-launch-1.0-Befehl ausführen, um das Streamen von Audio und Video in MacOS zu starten](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/macos.md#running-the-gst-launch-10-command-to-start-streaming-both-audio-and-raw-video-in-mac-os).

### Beispiel 9: Laden Sie eine MKV-Datei hoch, die sowohl Audio als auch Video enthält
<a name="examples-gstreamer-plugin-launch-ex9"></a>

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](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/windows.md#running-the-gst-launch-10-command-to-upload-mkv-file-that-contains-both-audio-and-video). Sie benötigen eine MKV-Testdatei mit h.264- und AAC-codierten Medien.

## Führen Sie das GStreamer-Element in einem Docker-Container aus
<a name="examples-gstreamer-plugin-docker"></a>

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:
+ [Anleitung zum Herunterladen von Docker](https://docs.docker.com/engine/install/)
+ [Erste Schritte mit Docker](https://docs.docker.com/guides/getting-started/)

Nach der Installation von Docker können Sie das Kinesis Video Streams C\+\+ Producer SDK (und das GStreamer-Plugin) mit einem 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 Streams-Producer-SDK-Element als Senke in einem Docker-Container auszuführen:

**Topics**
+ [Authentifizieren Sie Ihren Docker-Client](#examples-gstreamer-plugin-docker-authenticate)
+ [Herunterladen des Docker-Images für Ubuntu, macOS, Windows oder Raspberry Pi](#examples-gstreamer-plugin-docker-download)
+ [Führen Sie das Docker-Image aus](#examples-gstreamer-plugin-docker-run)

### Authentifizieren Sie Ihren Docker-Client
<a name="examples-gstreamer-plugin-docker-authenticate"></a>

Authentifizieren Sie Ihren Docker-Client bei der Amazon-ECR-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](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth) im *Benutzerhandbuch zu Amazon-Elastic-Container-Registry*.

**Example : Authentifizieren mit Amazon ECR**  
Um sich bei Amazon ECR zu authentifizieren, 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
<a name="examples-gstreamer-plugin-docker-download"></a>

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
<a name="examples-gstreamer-plugin-docker-download-ubuntu"></a>

```
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
<a name="examples-gstreamer-plugin-docker-download-macos"></a>

```
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
<a name="examples-gstreamer-plugin-docker-download-windows"></a>

```
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
<a name="examples-gstreamer-plugin-docker-download-rpi"></a>

```
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
<a name="examples-gstreamer-plugin-docker-run"></a>

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
<a name="examples-gstreamer-plugin-docker-run-ubuntu"></a>

```
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
<a name="examples-gstreamer-plugin-docker-run-macos"></a>

```
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
<a name="examples-gstreamer-plugin-docker-run-windows"></a>

```
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
<a name="examples-gstreamer-plugin-docker-run-rpi"></a>

```
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 `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 unter[Beispiele für GStreamer-Startbefehle](#examples-gstreamer-plugin-launch).