Unterstützung für Kinesis Video Streams API und Producer Libraries - 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.

Unterstützung für Kinesis Video Streams API und Producer Libraries

Kinesis Video Streams bietet Ihnen APIs die Möglichkeit, Streams zu erstellen und zu verwalten sowie Mediendaten in und aus einem Stream zu lesen oder zu schreiben. Die Kinesis Video Streams Streams-Konsole unterstützt neben den Verwaltungsfunktionen auch Live- und video-on-demand Playback-Funktionen. Kinesis Video Streams bietet auch eine Reihe von Producer-Bibliotheken, die Sie in Ihrem Anwendungscode verwenden können, um Daten aus Ihren Medienquellen zu extrahieren und in Ihren Kinesis-Videostream hochzuladen.

Kinesis Video Streams API

Kinesis Video Streams ermöglicht APIs die Erstellung und Verwaltung von Kinesis Video Streams. Es ermöglicht auch APIs das Lesen und Schreiben von Mediendaten in einen Stream wie folgt:

  • Producer API — Kinesis Video Streams bietet die Möglichkeit PutMediaAPI, Mediendaten in einen Kinesis-Videostream zu schreiben. In einer PutMedia-Anforderung sendet der Produzent einen Stream von Medienfragmenten. Ein Fragment ist eine abgeschlossene Folge von Frames. Zwischen den Frames eines Fragments und den Frames anderer Fragmente dürfen keine Abhängigkeiten bestehen. Weitere Informationen finden Sie unter PutMedia.

    Sobald Fragmente eintreffen, weist Kinesis Video Streams in aufsteigender Reihenfolge eine eindeutige Fragmentnummer zu. Es speichert auch produzenten- und serverseitige Zeitstempel für jedes Fragment als Kinesis Video Streams-spezifische Metadaten.

  • Verbraucher APIs — Verbraucher können Folgendes APIs verwenden, um Daten aus einem Stream abzurufen:

    • GetMedia- Bei der Verwendung müssen Verbraucher das Startfragment identifizieren. API Das gibt API dann Fragmente in der Reihenfolge zurück, in der sie dem Stream hinzugefügt wurden (in aufsteigender Reihenfolge nach Fragmentnummer). Die Mediendaten in den Fragmenten werden in ein strukturiertes Format wie Matroska () MKV gepackt. Weitere Informationen finden Sie unter GetMedia.

      Anmerkung

      GetMedia weiß, wo sich die Fragmente befinden (archiviert im Datenspeicher oder verfügbar in Echtzeit). Wenn GetMedia beispielsweise feststellt, dass das Startfragment archiviert ist, wird das Zurückgeben von Fragmenten aus dem Datenspeicher gestartet. Wenn es neuere Fragmente zurückgeben muss, die noch nicht archiviert wurden, GetMedia wechselt es zum Lesen von Fragmenten aus einem speicherinternen Stream-Puffer.

      Dies ist ein Beispiel für einen kontinuierlichen Konsumenten, der Fragmente in der Reihenfolge verarbeitet, in der sie vom Stream übernommen werden.

      Bei Verwendung von GetMedia können Anwendungen aus- oder zurückfallen und dann ohne zusätzlichen Aufwand wieder auf den aktuellen Stand gelangen. Mit GetMedia können Anwendungen Daten verarbeiten, die im Datenspeicher archiviert sind. Sobald die Anwendung wieder auf dem aktuellen Stand ist, setzt GetMedia das Einspeisen von Mediendaten in Echtzeit unmittelbar bei deren Ankunft fort.

    • GetMediaFromFragmentList (und ListFragments): Stapelverarbeitungsanwendungen gelten als Offline-Konsumenten. Nutzer, die offline sind, können sich dafür entscheiden, bestimmte Medienfragmente oder Videobereiche explizit abzurufen, indem sie und kombinieren. ListFragments GetMediaFromFragmentList APIs ListFragmentsund GetMediaFromFragmentList ermöglichen es einer Anwendung, Videosegmente für einen bestimmten Zeitraum oder Fragmentbereich zu identifizieren und diese Fragmente dann entweder sequentiell oder parallel zur Verarbeitung abzurufen. Diese Herangehensweise eignet sich für MapReduce-Anwendungssuites, die große Datenmengen schnell parallel verarbeiten müssen.

      Nehmen wir an, dass ein Konsument die Videofragmente für einen Tag verarbeiten möchte. Der Konsument würde folgendermaßen vorgehen:

      1. Rufen Sie eine Fragmentliste ab, indem Sie die aufrufen ListFragments API und einen Zeitraum angeben, um die gewünschte Fragmentsammlung auszuwählen.

        Das API gibt Metadaten aus allen Fragmenten im angegebenen Zeitraum zurück. Die Metadaten enthalten Informationen wie Fragmentnummer, hersteller- und serverseitige Zeitstempel usw.

      2. Fragment-Metadatenliste verwenden und Fragmente in beliebiger Reihenfolge abrufen. Um beispielsweise alle Fragmente für den Tag zu verarbeiten, könnte der Verbraucher die Liste in Unterlisten aufteilen und Mitarbeiter (z. B. mehrere EC2 Amazon-Instances) die Fragmente parallel mithilfe von abrufen und parallel verarbeiten lassen. GetMediaFromFragmentList

Das folgende Diagramm zeigt den Datenfluss für Fragmente und Chunks während dieser Aufrufe. API

Diagramm, das den Datenfluss für Fragmente und Chucks bei Aufrufen zeigt API

Wenn ein Produzent eine PutMedia-Anforderung sendet, sendet er die Medienmetadaten in der Nutzlast und dann eine Folge von Mediendatenfragmenten. Nach dem Empfang der Daten speichert Kinesis Video Streams eingehende Mediendaten als Kinesis Video Streams Streams-Chunks. Jeder Datenblock umfasst Folgendes:

  • Eine Kopie der Medienmetadaten

  • Ein Fragment

  • Kinesis Video Streams-spezifische Metadaten, z. B. die Fragmentnummer und serverseitige und produzentenseitige Zeitstempel

Wenn ein Verbraucher Medienmetadaten anfordert, gibt Kinesis Video Streams einen Stream von Chunks zurück, beginnend mit der Fragmentnummer, die Sie in der Anfrage angeben.

Wenn Sie die Datenpersistenz für den Stream aktivieren, speichert Kinesis Video Streams nach dem Empfang eines Fragments im Stream auch eine Kopie des Fragments im Datenspeicher.

Muster für die Erkennung von Endpunkten

Kontrollebene REST APIs

Verwenden Sie die Kinesis Video Streams Streams-Dienstendpunkte RESTAPIs, um auf die Kinesis Video Streams Streams-Steuerebene zuzugreifen.

Datenebene REST APIs

Kinesis Video Streams basiert auf einer Mobilfunkarchitektur, um eine bessere Skalierung und Isolierung des Datenverkehrs zu gewährleisten. Da jeder Stream einer bestimmten Zelle in einer Region zugeordnet ist, muss Ihre Anwendung die richtigen zellenspezifischen Endpunkte verwenden, denen Ihr Stream zugeordnet wurde. Wenn Sie auf die Datenebene zugreifen RESTAPIs, müssen Sie die richtigen Endpunkte selbst verwalten und zuordnen. Dieser Prozess, das Endpoint Discovery Pattern, wird im Folgenden beschrieben:

  1. Das Endpoint Discovery Pattern beginnt mit dem Aufruf einer der GetEndpoints Aktionen. Diese Aktionen gehören zur Kontrollebene.

  2. Zwischenspeichern Sie den Endpunkt und verwenden Sie ihn erneut.

  3. Wenn der zwischengespeicherte Endpunkt nicht mehr funktioniert, rufen Sie erneut auf, um den Endpunkt GetEndpoints zu aktualisieren.

Producer-Bibliotheken

Nachdem Sie einen Kinesis-Videostream erstellt haben, können Sie damit beginnen, Daten an den Stream zu senden. In Ihrem Anwendungscode können Sie diese Bibliotheken verwenden, um Daten aus Ihren Medienquellen zu extrahieren und in Ihren Kinesis-Videostream hochzuladen. Weitere Informationen zu den verfügbaren Producer-Bibliotheken finden Sie unter Zu Kinesis Video Streams hochladen.