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.
Daten an einen Amazon Kinesis Kinesis-Videostream senden
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: SDK GStreamer Produzenten-Plugin für Kinesis Video Streams - kvssink Plug-in verwendet.
Um Medien von einer Vielzahl von Geräten auf verschiedenen Betriebssystemen zu senden, verwendet dieses Tutorial die Kinesis Video Streams C++ Producer-Bibliothek und ein Open-Source-Medienframework GStreamer, das den Zugriff auf Kameras und andere Medienquellen standardisiert.
Erstellen Sie die und die Beispiele SDK
Sie können die Beispiele SDK und auf Ihrem Computer oder in erstellen AWS Cloud9. Folgen Sie den unten angegebenen Verfahren.
- 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 Repository klonen
-
Wird CMakezum Generieren von Makefiles verwendet
-
Die Binärdateien mit Make erstellen
- Build in AWS Cloud9
-
Gehen Sie wie folgt vor, um in AWS Cloud9 Kinesis Video Streams hochzuladen. Sie müssen nichts auf Ihren Computer herunterladen.
-
In der AWS Management Console, offen AWS Cloud9.
Wählen Sie Umgebung erstellen aus.
-
Gehen Sie auf dem Bildschirm Umgebung erstellen wie folgt vor:
Sie können die Standardauswahl für die anderen Felder beibehalten.
-
Wenn die Umgebung erstellt wurde, wählen Sie Öffnen in der IDE Spalte Cloud9 aus.
Im unteren mittleren Bereich des Bildschirms sehen Sie. Admin:~/environment $
Dies ist das AWS Cloud9
(Amazon-EC2) Terminal.
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.
-
Laden Sie das -Skript herunter.
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
-
Erteilen Sie dem Skript Ausführungsberechtigungen.
chmod +x resize_volume.sh
-
Führen Sie das Skript aus.
./resize_volume.sh
-
Rufen Sie die neuesten Informationen über die gesamte Software ab, die Sie mit dem Advanced Packaging Tool installieren oder aktualisieren können (APT).
Dieser Befehl aktualisiert nicht die Software selbst, sondern stellt sicher, dass Ihr System über die neuesten verfügbaren Versionen informiert ist.
sudo apt-get update
-
Installieren Sie die SDK C++-Producer-Abhängigkeiten.
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
-
Verwenden Sie Git, um den C++-Producer zu klonenSDK.
git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
-
Bereiten Sie ein Build-Verzeichnis vor.
cd amazon-kinesis-video-streams-producer-sdk-cpp
mkdir build
cd build
-
Wird verwendetCMake, 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
-
Verwenden Sie make, um die Anwendungen SDK und die Beispielanwendungen zu kompilieren und 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
-
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
-
(Optional) Sie können dem Startskript Ihrer Shell die Einstellung der PATH Umgebungsvariablen GST PLUGIN _ _ hinzufügen. Dadurch wird sichergestellt, dass GST PLUGIN _ _ während einer neuen Terminalsitzung richtig gesetzt PATH ist. AWS Cloud9 In lautet das 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 _ _ gesetzt PATH ist.
echo $GST_PLUGIN_PATH
Wenn Sie die Ausgabe richtig eingestellt haben, 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 Beispiele aus, um Medien auf 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 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
Videospezifikationen:
-
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 Größe einer Gruppe von Bildern (GoP)) 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 unterEinen Amazon Kinesis Kinesis-Videostream erstellen.
./kvs_gstreamer_sample YourStreamName
./sample.mp4
- Sample video from GStreamer
-
Verwenden Sie den folgenden Befehl, um ein Video mit zu generierenGStreamer.
Teilen Sie mit, GStreamer wo sich das kvssink
GStreamer Plugin befindet. Geben Sie in Ihrem Build-Verzeichnis den Pfad zu dem Ordner an, der die libgstkvssink.so
Datei enthält.
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 640 x 480 Pixeln läuft. 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 es werden höchstens alle 10 Bilder Keyframes generiert, was zu einer Fragmentdauer (auch bekannt als Größe einer Bildgruppe (GoP)) von 1 Sekunde führt. kvssink
nimmt den H.264-codierten Videostream, packt ihn in das Matroska (MKV) -Containerformat 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 stoppen, wählen Sie das Terminalfenster aus und drücken Sie +C. CTRL
Bestätigungsobjekte überprüfen
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 gedruckt sehen. Ein Beispiel sieht wie folgt aus:
{"EventType":"PERSISTED","FragmentTimecode":1711124585823
,"FragmentNumber":"12345678901234567890123456789012345678901234567
"}
Wenn die Bestätigung „Ja“ EventType
lautetPERSISTED
, bedeutet dies, dass Kinesis Video Streams diesen Medienblock dauerhaft gespeichert und verschlüsselt hat, um ihn abzurufen, zu analysieren und langfristig zu speichern.
Weitere Informationen zu Bestätigungen finden Sie unter. PutMedia