

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.

# Senden Sie Daten an einen Amazon Kinesis-Videostream
<a name="gs-send-data"></a>

In diesem Abschnitt wird beschrieben, wie Sie Mediendaten von einer Kamera an den Kinesis-Videostream senden, den Sie im vorherigen Abschnitt erstellt haben. In diesem Abschnitt wird die [Verwenden Sie die C\+\+ Producer-Bibliothek](producer-sdk-cpp.md) als [Beispiel: Das SDK, das GStreamer-Plugin des Herstellers von Kinesis Video Streams — kvssink](examples-gstreamer-plugin.md) Plug-in verwendet.

Um Medien von einer Vielzahl von Geräten mit unterschiedlichen Betriebssystemen zu senden, verwendet dieses Tutorial die Kinesis Video Streams C\+\+ Producer Library und [ GStreamer](https://gstreamer.freedesktop.org/), ein Open-Source-Medienframework, das den Zugriff auf Kameras und andere Medienquellen standardisiert. 

**Topics**
+ [Erstellen Sie das SDK und die Beispiele](#send-data-build-sdk)
+ [Führen Sie die Samples aus, um Medien in Kinesis Video Streams hochzuladen](#send-data-run-samples)
+ [Überprüfen Sie die Bestätigungsobjekte](#gs-review-acks)

## Erstellen Sie das SDK und die Beispiele
<a name="send-data-build-sdk"></a>

Sie können das SDK und die Beispiele auf Ihrem Computer oder in erstellen AWS Cloud9. Folgen Sie den unten stehenden Anweisungen.

------
#### [ Build on your computer ]

Verwenden Sie die Anweisungen in der [ Readme-Datei](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp), um die Producer-Bibliothek und die Beispielanwendung zu erstellen.

Dies umfasst:
+ Installieren von Abhängigkeiten
+ Das Projektarchiv klonen
+ Verwenden von ** CMake ** zum Generieren von Makefiles ** **
+ Erstellen der Binärdateien mit make ** **

------
#### [ Build in AWS Cloud9 ]

Gehen Sie zum Hochladen auf Kinesis Video Streams in AWS Cloud9 wie folgt vor. Sie müssen nichts auf Ihren Computer herunterladen.

1. In der AWS-Managementkonsole, öffnen [AWS Cloud9](https://us-west-2.console.aws.amazon.com/cloud9control/home).

   Wählen Sie Umgebung ** erstellen aus**.

1. Gehen Sie auf dem ** Bildschirm „Umgebung ** erstellen“ wie folgt vor:
   + **Name ** — Geben Sie einen Namen für Ihre neue Umgebung ein.
   + **Plattform ** — Wählen Sie ** Ubuntu Server 22.04 ** LTS.

   Sie können die anderen Felder mit den Standardauswahlen belassen.

1. Wenn die Umgebung erstellt wurde, wählen Sie ** in der Spalte ** Cloud9 IDE ** die Option ** Öffnen aus.

   Im unteren mittleren Bereich des Bildschirms sehen Sie. `Admin:~/environment $` Dies ist das AWS Cloud9 (Amazon EC2) -Terminal.
**Anmerkung**  
Wenn Sie das Terminal versehentlich schließen, wählen Sie ** Fenster**, ** Neues Terminal**.

   Führen Sie die folgenden Befehle im Terminal aus, um die Lautstärke auf 20 GiB zu ändern.

   1. Laden Sie das -Skript herunter.

      ```
      wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
      ```

   1. Erteilen Sie dem Skript Ausführungsberechtigungen.

      ```
      chmod +x resize_volume.sh
      ```

   1. Führen Sie das Skript aus.

      ```
      ./resize_volume.sh
      ```

1. Rufen Sie die neuesten Informationen zu der gesamten Software ab, die Sie mit dem Advanced Packaging Tool (APT) installieren oder aktualisieren können. 

   Dieser Befehl aktualisiert nicht die Software selbst, stellt jedoch sicher, dass Ihr System die neuesten verfügbaren Versionen kennt.

   ```
   sudo apt-get update
   ```

1. Installieren Sie die SDK-Abhängigkeiten des C\+\+-Generators.

   ```
   sudo apt-get install -y cmake m4 git build-essential pkg-config libssl-dev libcurl4-openssl-dev \
   liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
   gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good \
   gstreamer1.0-plugins-ugly gstreamer1.0-tools
   ```

1. Verwenden Sie Git, um das C\+\+-Produzenten-SDK zu klonen. 

   ```
   git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
   ```

1. Bereiten Sie ein Build-Verzeichnis vor.

   ```
   cd amazon-kinesis-video-streams-producer-sdk-cpp
   mkdir build
   cd build
   ```

1. Verwenden Sie CMake, um Makefiles zu generieren. 

   ```
   cmake .. -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_DEPENDENCIES=OFF
   ```

   Das Ende der erwarteten Ausgabe sieht wie folgt aus:

   ```
   -- Build files have been written to: /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
   ```

1. Verwenden Sie make, um das SDK und die Beispielanwendungen zu kompilieren sowie die endgültigen ausführbaren Dateien zu erstellen.

   ```
   make
   ```

   Das Ende der erwarteten Ausgabe sieht wie folgt aus:

   ```
   [100%] Linking CXX executable kvs_gstreamer_file_uploader_sample
   [100%] Built target kvs_gstreamer_file_uploader_sample
   ```

1. Vergewissern Sie sich, dass die Beispieldateien erstellt wurden. Listet die Dateien im aktuellen Verzeichnis auf:

   ```
   ls
   ```

   Vergewissern Sie sich, dass die folgenden Dateien vorhanden sind:
   + kvs\_gstreamer\_sample
   + libgstkvssink.so

1. (Optional) Sie können die Einstellung der Umgebungsvariablen GST\_PLUGIN\_PATH zum Startskript Ihrer Shell hinzufügen. Dadurch wird sichergestellt, dass GST\_PLUGIN\_PATH während einer neuen Terminalsitzung richtig eingestellt ist. In lautet das AWS Cloud9 Startskript der Shell:. `~/.bashrc`

   Führen Sie den folgenden Befehl aus, um den Befehl an das Ende des Startskripts der Shell anzuhängen.

   ```
   echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc
   ```

   Geben Sie Folgendes ein, um das Startskript der Shell auszuführen:

   ```
   source ~/.bashrc
   ```

   Bestätigen Sie, dass GST\_PLUGIN\_PATH gesetzt ist.

   ```
   echo $GST_PLUGIN_PATH
   ```

   Wenn Sie die Ausgabe richtig einstellen, wird die folgende Ausgabe angezeigt. Wenn die Ausgabe leer ist, ist die Umgebungsvariable nicht richtig gesetzt.

   ```
   /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
   ```

------

## Führen Sie die Samples aus, um Medien in Kinesis Video Streams hochzuladen
<a name="send-data-run-samples"></a>

Die Beispielanwendung unterstützt keine IMDS-Anmeldeinformationen. Exportieren Sie in Ihrem Terminal die AWS Anmeldeinformationen für Ihren IAM-Benutzer oder Ihre IAM-Rolle und die Region, in der sich Ihr Stream befindet.

```
export AWS_ACCESS_KEY_ID={{YourAccessKey}}
export AWS_SECRET_ACCESS_KEY={{YourSecretKey}}
export AWS_DEFAULT_REGION={{YourAWSRegion}}
```

Wenn du temporäre AWS Anmeldeinformationen verwendest, exportiere auch dein Sitzungstoken:

```
export AWS_SESSION_TOKEN={{YourSessionToken}}
```

------
#### [ .mp4 files ]

Laden Sie ein MP4-Beispielvideo herunter, um es auf Kinesis Video Streams hochzuladen. 

```
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/sample.mp4
```

Technische Daten des Videos:
+ **Auflösung**: 1280 x 720 Pixel 
+ **Bildrate ** - 30 Bilder pro Sekunde
+ **Dauer**: 14,0 Sekunden
+ **Videokodierung ** - H.264, in Track 1
+ **Keyframes ** — Alle 3 Sekunden, was zu einer Fragmentdauer (auch bekannt als GOP-Größe) von 3 Sekunden führt, wobei das letzte Fragment 2 Sekunden lang ist.

Führen Sie den folgenden Befehl mit dem Namen des Streams aus, den Sie zuvor erstellt haben. Wenn Sie noch keinen Stream erstellt haben, finden Sie weitere Informationen unter[Erstellen Sie einen Amazon Kinesis-Videostream](gs-createstream.md).

```
./kvs_gstreamer_sample {{YourStreamName}} ./sample.mp4
```

------
#### [ Sample video from GStreamer ]

Verwenden Sie den folgenden Befehl, um ein Video mit GStreamer zu generieren.

Teilen Sie GStreamer mit, wo das GStreamer-Plugin zu finden ist. `kvssink` Geben Sie in Ihrem Build-Verzeichnis den Pfad zu dem Ordner an, der die Datei enthält. `libgstkvssink.so` 

Führen Sie in Ihrem Build-Verzeichnis den folgenden Befehl aus:

```
export GST_PLUGIN_PATH=`pwd`
```

Diese GStreamer-Pipeline generiert einen Live-Testvideostream mit einem Standardtestmuster, das mit 10 Bildern pro Sekunde und einer Auflösung von 640x480 Pixeln ausgeführt wird. Es wird ein Overlay hinzugefügt, das die aktuelle Systemzeit und das aktuelle Systemdatum anzeigt. Das Video wird dann in das H.264 Format codiert und Keyframes werden höchstens alle 10 Frames generiert, was zu einer Fragmentdauer (auch bekannt als GOP-Größe) von 1 Sekunde führt. `kvssink`nimmt den H.264-encoded Videostream, packt ihn in das Matroska-Containerformat (MKV) und lädt ihn in Ihren Kinesis-Videostream hoch.

Führen Sie den folgenden Befehl aus:

```
gst-launch-1.0 -v videotestsrc is-live=true \
  ! video/x-raw,framerate=10/1,width=640,height=480 \
  ! clockoverlay time-format="%a %B %d, %Y %I:%M:%S %p" \
  ! x264enc bframes=0 key-int-max=10 \
  ! h264parse \
  ! kvssink stream-name="{{YourStreamName}}"
```

Um die GStreamer-Pipeline zu beenden, wählen Sie das Terminalfenster aus und drücken Sie STRG\+C. ** **

------

**Anmerkung**  
Weitere Informationen zur Verwendung des GStreamer-Plug-ins zum Streamen von Videos aus einem RTSP-Stream von einer Kamera oder von einer USB-Kamera finden Sie unter. [Beispiel: Das SDK, das GStreamer-Plugin des Herstellers von Kinesis Video Streams — kvssink](examples-gstreamer-plugin.md)

## Überprüfen Sie die Bestätigungsobjekte
<a name="gs-review-acks"></a>

Während des Uploads sendet Kinesis Video Streams Bestätigungsobjekte zurück an den Client, der den Upload durchführt. Sie sollten diese in der Befehlsausgabe sehen. Ein Beispiel sieht wie folgt aus: 

```
{"EventType":"PERSISTED","FragmentTimecode":{{1711124585823}},"FragmentNumber":"{{12345678901234567890123456789012345678901234567}}"}
```

Wenn die Bestätigung zutrifft, bedeutet `EventType` das`PERSISTED`, dass Kinesis Video Streams diesen Medienblock dauerhaft gespeichert und verschlüsselt hat, damit er abgerufen, analysiert und langfristig gespeichert werden kann. 

Weitere Informationen zu Bestätigungen finden Sie unter. [ PutMedia ](https://docs.aws.amazon.com/kinesisvideostreams/latest/APIReference/API_dataplane_PutMedia.html)