API Kinesis Video Streams et prise en charge des bibliothèques de production - Amazon Kinesis Video Streams

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

API Kinesis Video Streams et prise en charge des bibliothèques de production

Kinesis Video Streams fournit des API qui vous permettent de créer et de gérer des flux, ainsi que de lire ou d'écrire des données multimédia depuis et vers un flux. Outre les fonctionnalités d'administration, la console Kinesis Video Streams prend également en charge la diffusion en direct video-on-demand et la lecture. Kinesis Video Streams fournit également un ensemble de bibliothèques de production que vous pouvez utiliser dans le code de votre application pour extraire des données de vos sources multimédia et les télécharger sur votre flux vidéo Kinesis.

API Kinesis Video Streams

Kinesis Video Streams fournit des API permettant de créer et de gérer des Kinesis Video Streams. Il fournit également des API pour la lecture et l'écriture des données média sur un flux, comme suit :

  • API Producer — Kinesis Video Streams fournit PutMedia une API permettant d'écrire des données multimédia dans un flux vidéo Kinesis. Dans une requête PutMedia, le producteur envoie un flux de fragments média. Un fragment est une séquence d'images autonomes. Les images appartenant à un fragment ne doivent avoir aucune dépendance vis-à-vis des images provenant d'autres fragments. Pour plus d’informations, consultez PutMedia.

    Au fur et à mesure que les fragments arrivent, Kinesis Video Streams attribue un numéro de fragment unique, par ordre croissant. Il stocke également les horodatages côté producteur et côté serveur pour chaque fragment, sous forme de métadonnées spécifiques à Kinesis Video Streams.

  • API grand public : les consommateurs peuvent utiliser les API suivantes pour obtenir des données à partir d'un flux :

    • GetMedia - Lors de l'utilisation de cet API, les consommateurs doivent identifier le fragment de départ. L'API renvoie ensuite les fragments dans leur ordre d'ajout au flux (en ordre croissant par numéro de fragment). Les données médias dans les fragments sont compressées dans un format structuré, comme le format Matroska (MKV). Pour plus d’informations, consultez GetMedia.

      Note

      GetMedia connait l'emplacement des fragments (archivés dans le magasin de données ou disponibles en temps réel). Par exemple, si GetMedia détermine que le fragment de départ est archivé, il commence à renvoyer des fragments à partir du magasin de données. Lorsqu'il doit renvoyer des fragments plus récents qui ne sont pas encore archivés, GetMedia passe à la lecture de fragments depuis une mémoire tampon de flux en mémoire.

      Ceci est un exemple d'un consommateur continue qui traite les fragments dans l'ordre dans lequel ils sont assimilés par le flux.

      GetMedia permet aux applications de traitement vidéo d'échouer ou de prendre du retard, puis de rattraper sans aucun effort supplémentaire. Par l'utilisation de GetMedia, les applications peuvent traiter les données archivées dans le magasin de données et lorsque l'application rattrape les tâches, GetMedia continue d'alimenter les données média en temps réel à leur arrivée.

    • GetMediaFromFragmentList (et ListFragments) - Les applications de traitement par lot sont considérées comme consommateurs hors ligne. Les consommateurs hors ligne peuvent décider de récupérer explicitement certains fragments de médias spécifiques ou certaines plages de vidéo en combinant les API ListFragments et GetMediaFromFragmentList. ListFragments et GetMediaFromFragmentList permettent à une application d'identifier les segments d'une vidéo pour une plage de temps ou de fragments particulière, puis de récupérer ces fragments soit de façon séquentielle soit en parallèle pour traitement. Cette approche convient aux gammes d'application MapReduce, qui doit traiter rapidement de grandes quantités de données en parallèle.

      Par exemple, supposons qu'un client souhaite traiter les fragments de vidéos d'une journée. Le consommateur doit procéder comme suit :

      1. Obtenez une liste des fragments en appelant l'API ListFragments et en spécifiant une période pour sélectionner la collection de fragments souhaitée.

        L'API renvoie les métadonnées à partir de tous les fragments dans la période spécifiée. Les métadonnées fournissent des informations telles que le numéro du fragment, les horodatages côté producteur et côté serveur, etc.

      2. Prenez la liste de métadonnées de fragment et récupérez les fragments, dans n'importe quel ordre. Par exemple, pour traiter tous les fragments de la journée, le consommateur peut choisir de diviser la liste en sous-listes et de demander aux employés (par exemple, plusieurs instances Amazon EC2) de récupérer les fragments en parallèle à l'aide GetMediaFromFragmentList de, et de les traiter en parallèle.

Le schéma suivant illustre le flux de données pour des fragments et fragments au cours de ces appels d'API.

Schéma montrant le flux de données des fragments et des morceaux pendant les appels de l'API

Lorsqu'un producteur envoie une requête PutMedia, il envoie les métadonnées média dans la charge utile, puis envoie une séquence de fragments de données média. Dès réception des données, Kinesis Video Streams stocke les données multimédia entrantes sous forme de fragments Kinesis Video Streams. Chaque morceau se compose des éléments suivants :

  • Une copie des métadonnées média

  • Un fragment

  • Métadonnées spécifiques à Kinesis Video Streams, par exemple le numéro du fragment et les horodatages côté serveur et côté producteur

Lorsqu'un consommateur demande des métadonnées multimédia, Kinesis Video Streams renvoie un flux de fragments, en commençant par le numéro de fragment que vous spécifiez dans la demande.

Si vous activez la persistance des données pour le flux, après avoir reçu un fragment dans le flux, Kinesis Video Streams enregistre également une copie du fragment dans le magasin de données.

Modèle de découverte des terminaux

API REST du plan de contrôle

Pour accéder aux API REST du plan de contrôle Kinesis Video Streams, utilisez les points de terminaison du service Kinesis Video Streams.

API REST du plan de données

Kinesis Video Streams repose sur une architecture cellulaire afin de garantir une meilleure évolutivité et de meilleures propriétés d'isolation du trafic. Chaque flux étant mappé à une cellule spécifique d'une région, votre application doit utiliser les points de terminaison spécifiques à la cellule auxquels votre flux a été mappé. Lorsque vous accédez aux API REST de Data Plane, vous devez gérer et mapper vous-même les points de terminaison appropriés. Ce processus, le modèle de découverte des terminaux, est décrit ci-dessous :

  1. Le modèle de découverte des terminaux commence par un appel à l'une des GetEndpoints actions. Ces actions appartiennent au plan de contrôle.

    1. Si vous récupérez les points de terminaison pour les Amazon Kinesis Video Streams services Amazon Kinesis Video Streams or, utilisez. GetDataEndpoint

    2. Si vous recherchez les points de terminaison pour Amazon KinesisAmazon Kinesis Kinesis Kinesis Kinesis Kinesis Kinesis Kinesis Kinesis, ou pour Kinesis Video Signaling, utilisez. GetSignalingChannelEndpoint

  2. Mettez en cache et réutilisez le point de terminaison.

  3. Si le point de terminaison mis en cache ne fonctionne plus, effectuez un nouvel appel pour GetEndpoints actualiser le point de terminaison.

Bibliothèques pour producteurs

Après avoir créé un flux vidéo Kinesis, vous pouvez commencer à lui envoyer des données. Dans le code de votre application, vous pouvez utiliser ces bibliothèques pour extraire des données de vos sources multimédia et les télécharger dans votre flux vidéo Kinesis. Pour plus d'informations sur les bibliothèques producteur disponibles, consultez Bibliothèques de production Kinesis Video Streams.