View a markdown version of this page

Beispiel: Parsen und Rendern von Kinesis Video Streams-Fragmenten - 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.

Beispiel: Parsen und Rendern von Kinesis Video Streams-Fragmenten

Der Streamen Sie mithilfe der Parser-Bibliothek enthält eine Demo-Anwendung mit dem NamenKinesisVideoRendererExample, die das Analysieren und Rendern von Amazon Kinesis-Videostream-Fragmenten demonstriert. Das Beispiel verwendet JCodec, um die H.264 kodierten Frames zu dekodieren, die mithilfe der Anwendung aufgenommen werden. Beispiel: Das SDK, das GStreamer-Plugin des Herstellers von Kinesis Video Streams — kvssink Nachdem der Frame mit JCodec decodiert wurde, wird das sichtbare Bild mit JFrame gerendert.

Dieses Beispiel veranschaulicht, wie Sie folgende Aufgaben ausführen:

  • Rufen Sie mithilfe der GetMedia API Frames aus einem Kinesis-Videostream ab und rendern Sie den Stream zur Anzeige.

  • Sehen Sie sich den Videoinhalt von Streams in einer benutzerdefinierten Anwendung an, anstatt die Kinesis Video Streams-Konsole zu verwenden.

Sie können die Klassen in diesem Beispiel auch verwenden, um Kinesis-Videostream-Inhalte anzusehen, die nicht codiert sind H.264, z. B. einen Stream von JPEG-Dateien, die vor der Anzeige nicht dekodiert werden müssen.

Im folgenden Verfahren wird veranschaulicht, wie Sie die Renderer-Demoanwendung einrichten und verwenden.

Voraussetzungen

Zum Untersuchen und Verwenden der Renderer-Beispielbibliothek ist Folgendes erforderlich:

Ausführen des Renderer-Beispiels

  1. Erstellen Sie ein Verzeichnis und klonen Sie dann den Beispielquellcode aus dem GitHub Repository.

    git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library
  2. Öffnen Sie die Java-IDE (z. B. Eclipse oder IntelliJ IDEA) und importieren Sie das heruntergeladene Apache Maven-Projekt:

    • In Eclipse: Klicken Sie auf File, Import, Maven, Existing Maven Projects. Navigieren Sie zum kinesis-video-streams-parser-lib Verzeichnis .

    • In IntelliJ Idea: Klicken Sie auf Import. Navigieren Sie zur Datei pom.xml im Stammverzeichnis des heruntergeladenen Pakets.

      Anmerkung

      Wenn IntelliJ Ihre Abhängigkeiten nicht finden kann, müssen Sie möglicherweise Folgendes tun:

      • Neuerstellung: Klicken Sie auf Datei, Einstellungen, Build, Execution, Deployment (Erstellung, Ausführung, Bereitstellung), Compiler. Vergewissern Sie sich, dass die Option Ausgabeverzeichnis bei Neuaufbau löschen ausgewählt ist, und wählen Sie dann Build, Build Project aus.

      • Projekt erneut importieren: Öffnen Sie das Kontextmenü (Rechtsklick) für das Projekt und wählen Sie dann Maven und Reimport (Neu importieren) aus.

    Weitere Informationen finden Sie in der Dokumentation zur IDE.

  3. Öffnen Sie über Ihre Java-IDE src/test/java/com.amazonaws.kinesisvideo.parser/examples/KinesisVideoRendererExampleTest.

  4. Entfernen Sie die Anweisung @Ignore aus der Datei.

  5. Aktualisieren Sie den .stream Parameter mit dem Namen Ihres Kinesis-Videostreams.

  6. Führen Sie den Test KinesisVideoRendererExample aus.

So funktioniert’s

Senden von MKV-Daten

Das Beispiel sendet MKV-Beispieldaten aus der Datei rendering_example_video.mkvPutMedia und sendet mithilfe von Videodaten aus einem Stream mit dem Namen render-example-stream.

Die Anwendung erstellt eine PutMediaWorker:

PutMediaWorker putMediaWorker = PutMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), inputStream, streamOps.amazonKinesisVideo); executorService.submit(putMediaWorker);

Informationen zur Klasse PutMediaWorker finden Sie unter Rufen Sie an PutMedia in der Dokumentation zu Streamen Sie mithilfe der Parser-Bibliothek.

Analysieren von MKV-Fragmenten in Frames

Im Beispiel werden die MKV-Fragmente dann mittels einer GetMediaWorker aus dem Stream abgerufen und analysiert:

GetMediaWorker getMediaWorker = GetMediaWorker.create(getRegion(), getCredentialsProvider(), getStreamName(), new StartSelector().withStartSelectorType(StartSelectorType.EARLIEST), streamOps.amazonKinesisVideo, getMediaProcessingArgumentsLocal.getFrameVisitor()); executorService.submit(getMediaWorker);

Weitere Informationen zur Klasse GetMediaWorker finden Sie unter Rufen Sie an GetMedia in der Dokumentation zu Streamen Sie mithilfe der Parser-Bibliothek.

Den Frame dekodieren und anzeigen

Der Frame wird dann im Beispiel mittels JFrame decodiert und angezeigt.

Das folgende Code-Beispiel stammt aus der Klasse KinesisVideoFrameViewer, die JFrame erweitert:

public void setImage(BufferedImage bufferedImage) { image = bufferedImage; repaint(); }

Das Bild wird als Instanz von java.awt.image angezeigt. BufferedImage. Beispiele, die zeigen, wie man damit arbeitetBufferedImage, finden Sie unter Reading/Loading Bild.