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: Senden von Daten an Kinesis Video Streams mithilfe der API PutMedia
Dieses Beispiel zeigt, wie die PutMediaAPI verwendet wird. Es zeigt, wie Daten gesendet werden, die bereits in einem Containerformat (MKV) vorliegen. Wenn Ihre Daten vor dem Senden in ein Containerformat zusammengestellt werden müssen (z. B. wenn Sie Kameravideodaten in Frames zusammenfügen), finden Sie weitere Informationen unter. Zu Kinesis Video Streams hochladen
Anmerkung
Die PutMedia
Operation ist nur in C++ und Java SDKs verfügbar. Dies ist auf die Vollduplex-Verwaltung von Verbindungen, Datenfluss und Bestätigungen zurückzuführen. Es wird in anderen Sprachen nicht unterstützt.
In diesem Beispiel werden folgende Schritte beschrieben:
Laden Sie den Code herunter und konfigurieren Sie ihn
Folgen Sie den Schritten, um den Java-Beispielcode herunterzuladen, das Projekt in Ihre Java-IDE zu importieren, die Bibliotheksspeicherorte zu konfigurieren und den Code so zu konfigurieren, dass er Ihre AWS Anmeldeinformationen verwendet.
-
Erstellen Sie ein Verzeichnis und klonen Sie den Beispielquellcode aus dem GitHub Repository. Das
PutMedia
-Beispiel ist Bestandteil der Java.git clone https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-java
-
Öffnen Sie die Java-IDE, die Sie verwenden (z. B. Eclipse
oder IntelliJ IDEA ), und importieren Sie das Apache Maven-Projekt, das Sie heruntergeladen haben: -
In Eclipse: Klicken Sie auf File (Datei), Import (Importieren), Maven, Existing Maven Projects (Vorhandene Maven-Projekte) und navigieren Sie zum Stammverzeichnis des heruntergeladenen Pakets. Wählen Sie die
pom.xml
-Datei aus. -
In IntelliJ Idea: Klicken Sie auf Import. Navigieren Sie zur Datei
pom.xml
im Stammverzeichnis des heruntergeladenen Pakets.
Weitere Informationen finden Sie in der Dokumentation zur IDE.
-
-
Aktualisieren Sie das Projekt, damit die IDE die importierten Bibliotheken findet.
-
Gehen Sie bei IntelliJ IDEA wie folgt vor:
-
Klicken Sie mit der rechten Maustaste auf das Verzeichnis lib des Projekts und wählen Sie Add as library.
-
Wählen Sie „Datei“ und anschließend „Projektstruktur“.
-
Wählen Sie unter Project Settings die Option Modules aus.
-
Stellen Sie auf der Registerkarte Sources (Quellen) die Option Language Level (Sprachebene) auf
7
oder einen höheren Wert ein.
-
-
Gehen Sie bei Eclipse wie folgt vor:
-
Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Properties, Java Build Path, Source. Führen Sie dann die folgenden Schritte aus:
-
Doppelklicken Sie auf der Registerkarte Source auf Native library location.
-
Klicken Sie im Assistenten Native Library Folder Configuration auf Workspace.
-
Wählen Sie im Auswahlbildschirm Native Library Folder das Verzeichnis lib des Projekts aus.
-
-
Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Properties. Führen Sie dann die folgenden Schritte aus:
-
Klicken Sie auf der Registerkarte Libraries auf Add Jars.
-
Wählen Sie im Assistenten JAR selection (JAR-Auswahl) alle JAR-Dateien im Verzeichnis
lib
des Projekts aus.
-
-
-
Schreiben und untersuchen Sie den Code
Das PutMedia
-API-Beispiel () weist folgendes Programmiermuster auf:PutMediaDemo
Die Codebeispiele in diesem Abschnitt stammen aus der Klasse PutMediaDemo
.
Erstelle den PutMediaClient
Für die Erstellung des PutMediaClient
Objekts sind die folgenden Parameter erforderlich:
-
URI des
PutMedia
-Endpunkts -
Ein
InputStream
-Wert, der auf die streamende MKV-Datei zeigt. -
Name des Streams. In diesem Beispiel wird wieder der in Verwenden Sie die Java-Producer-Bibliothek (
my-stream
) erstellte Stream verwendet. Wenn Sie einen anderen Stream verwenden möchten, ändern Sie folgenden Parameter:private static final String STREAM_NAME="my-stream";
Anmerkung
Das
PutMedia
API-Beispiel erstellt keinen Stream. Sie müssen einen Stream erstellen, indem Sie entweder die Testanwendung für dieVerwenden Sie die Java-Producer-Bibliothek, die Kinesis Video Streams Streams-Konsole oder die AWS CLI verwenden. -
Aktueller Zeitstempel
-
Zeitcodetyp. In diesem Beispiel wird
RELATIVE
verwendet, was bedeutet, dass der Zeitstempel relativ zum Beginn des Containers gilt. -
Ein
AWSKinesisVideoV4Signer
-Objekt, das prüft, ob die empfangenen Pakete von einem autorisierten Absender gesendet wurden -
Maximale Upstream-Bandbreite in Kbit/s
-
Ein
AckConsumer
-Objekt, das die empfangenen Bestätigungspakete aufnimmt.
Im folgenden Code wird das Objekt PutMediaClient
erstellt:
/* actually URI to send PutMedia request */ final URI uri = URI.create(KINESIS_VIDEO_DATA_ENDPOINT + PUT_MEDIA_API); /* input stream for sample MKV file */ final InputStream inputStream = new FileInputStream(MKV_FILE_PATH); /* use a latch for main thread to wait for response to complete */ final CountDownLatch latch = new CountDownLatch(1); /* a consumer for PutMedia ACK events */ final AckConsumer ackConsumer = new AckConsumer(latch); /* client configuration used for AWS SigV4 signer */ final ClientConfiguration configuration = getClientConfiguration(uri); /* PutMedia client */ final PutMediaClient client = PutMediaClient.builder() .putMediaDestinationUri(uri) .mkvStream(inputStream) .streamName(STREAM_NAME) .timestamp(System.currentTimeMillis()) .fragmentTimeCodeType("RELATIVE") .signWith(getKinesisVideoSigner(configuration)) .upstreamKbps(MAX_BANDWIDTH_KBPS) .receiveAcks(ackConsumer) .build();
Streamen von Medien und Anhalten des Threads
Nach dem Erstellen des Clients wird das asynchrone Streaming mit putMediaInBackground
gestartet. Danach wird der Haupt-Thread mit latch.await
angehalten, bis AckConsumer
zurückkehrt. Nun wird der Client geschlossen.
/* start streaming video in a background thread */ client.putMediaInBackground(); /* wait for request/response to complete */ latch.await(); /* close the client */ client.close();
Führen Sie den Code aus und überprüfen Sie ihn
Um das PutMedia
-API-Beispiel auszuführen, gehen Sie wie folgt vor:
-
Erstellen Sie einen Stream mit dem Namen
my-stream
in der Kinesis Video Streams Streams-Konsole oder mithilfe von. AWS CLI -
Ändern Sie Ihr Arbeitsverzeichnis auf das Java Producer SDK-Verzeichnis:
cd /<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-java/
-
Kompilieren Sie das Java SDK und die Demoanwendung:
mvn package
-
Erstellen Sie einen temporären Dateinamen im Verzeichnis
/tmp
:jar_files=$(mktemp)
-
Erstellen Sie eine classpath-Zeichenfolge mit den Abhängigkeiten zum lokalen Repository in einer Datei:
mvn -Dmdep.outputFile=$jar_files dependency:build-classpath
-
Legen Sie den Wert der Umgebungsvariablen
LD_LIBRARY_PATH
wie folgt fest:export LD_LIBRARY_PATH=/<YOUR_FOLDER_PATH_WHERE_SDK_IS_DOWNLOADED>/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH $ classpath_values=$(cat $jar_files)
-
Führen Sie die Demo über die Befehlszeile wie folgt aus und geben Sie Ihre AWS Anmeldeinformationen ein:
java -classpath target/kinesisvideo-java-demo-1.0-SNAPSHOT.jar:$classpath_values -Daws.accessKeyId=${ACCESS_KEY} -Daws.secretKey=${SECRET_KEY} -Djava.library.path=/opt/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build com.amazonaws.kinesisvideo.demoapp.DemoAppMain
-
Öffnen Sie die Kinesis Video Streams Streams-Konsole
und wählen Sie Ihren Stream auf der Seite Streams verwalten aus. Das Video wird im Bereich Video Preview wiedergegeben.