View a markdown version of this page

Senden Sie Daten an einen Amazon Kinesis-Videostream - Amazon Kinesis Video Streams

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

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 als Beispiel: Das SDK, das GStreamer-Plugin des Herstellers von Kinesis Video Streams — kvssink 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, ein Open-Source-Medienframework, das den Zugriff auf Kameras und andere Medienquellen standardisiert.

Erstellen Sie das SDK und die Beispiele

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, 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.

    Wählen Sie Umgebung erstellen aus.

  2. 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.

  3. 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
    2. Erteilen Sie dem Skript Ausführungsberechtigungen.

      chmod +x resize_volume.sh
    3. Führen Sie das Skript aus.

      ./resize_volume.sh
  4. 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
  5. 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
  6. Verwenden Sie Git, um das C++-Produzenten-SDK zu klonen.

    git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
  7. Bereiten Sie ein Build-Verzeichnis vor.

    cd amazon-kinesis-video-streams-producer-sdk-cpp mkdir build cd build
  8. 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
  9. 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
  10. 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

  11. (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

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 unterErstellen Sie einen Amazon Kinesis-Videostream.

./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. kvssinknimmt 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

Überprüfen Sie die Bestätigungsobjekte

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 dasPERSISTED, 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