Intégration de métadonnées dans un flux vidéo - Amazon Interactive Video Service

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.

Intégration de métadonnées dans un flux vidéo

Les métadonnées temporisées Amazon Interactive Video Service (IVS) permettent d'intégrer des métadonnées dans un flux Amazon IVS. Elles garantissent que tous vos utilisateurs reçoivent les métadonnées en même temps dans le flux vidéo, indépendamment de la latence du flux ou de l'emplacement géographique.

Que sont les métadonnées temporisées ?

Les métadonnées temporisées sont des métadonnées avec des horodatages. Elles peuvent être insérées dans un flux par programmation, à l’aide de l’API IVS ou du SDK de diffusion IVS. Lorsqu’Amazon IVS traite un flux, les métadonnées temporisées sont synchronisées avec les images audio et vidéo. Pendant la lecture, tous les utilisateurs du flux obtiennent les métadonnées en même temps par rapport au flux. Le code horaire sert de point de repère qui peut être utilisé pour déclencher une action basée sur les données, par exemple :

  • la mise à jour des statistiques des joueurs pour un flux sportif ;

  • l'envoi de détails produit pour un flux de vente en direct ;

  • l'envoi de questions pour un flux de quiz en direct.

Les métadonnées temporisées Amazon IVS utilisent des balises ID3 intégrées dans les segments vidéo. Ils sont donc disponibles dans la vidéo enregistrée.

Configuration des autorisations IAM

Prérequis : avant de continuer, nous vous recommandons de passer en revue Mise en route avec le streaming à faible latence IVS (y compris la création d'un utilisateur IAM et la configuration d'autorisations).

Ensuite, vous devez donner à votre utilisateur IAM l’autorisation d’utiliser des métadonnées temporisées. Procédez comme suit :

  1. Connectez-vous à la console de gestion AWS et ouvrez la console IAM à l'adresse https://console.aws.amazon.com/iam/.

  2. Dans le volet de navigation, sélectionnez Users (Utilisateurs), puis l'utilisateur souhaité (le nom d'utilisateur que vous avez spécifié lors de la création d'un compte AWS).

  3. Dans la fenêtre utilisateur Summary (Récapitulatif), sous l'onglet Permissions (Autorisations), sélectionnez Add inline policy (Ajouter une stratégie en ligne) (à droite).

  4. Sous l'onglet JSON, collez dans ce blob :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ivs:PutMetadata" ], "Resource": "arn:aws:ivs:*:*:channel/*" } ] }
  5. Dans la fenêtre Create Policy (Créer une stratégie), sélectionnez l'option Review Policy (Examiner une stratégie). Donnez un nom à la stratégie et cliquez sur Create Policy (Créer une stratégie).

  6. Vous êtes renvoyé vers la fenêtre utilisateur Summary (Récapitulatif), qui affiche le nom de votre nouvelle stratégie.

Insertion de métadonnées temporisées

Vous pouvez insérer des métadonnées temporisées uniquement dans un flux actif sur un canal spécifié.

Utilisation de l'AWS CLI

Pour les tests, le moyen le plus simple d'ajouter des métadonnées termporisées est d'utiliser l'AWS CLI. Pour utiliser l’AWS CLI, il est nécessaire de télécharger et de configurer la CLI au préalable sur votre ordinateur. Vous l'avez peut-être déjà fait lorsque vous avez passé en revue Mise en route avec le streaming à faible latence IVS, mais si ce n'est pas le cas, faites-le maintenant. Pour plus de détails, consultez le ‭‬Guide de l'utilisateur de l'Interface de ligne de commande AWS‭.

Une fois que vous avez la CLI :

  1. Exécutez la commande put-metadata et passez dans l'ARN du canal et vos métadonnées :

    aws ivs put-metadata --channel-arn <your-channel-arn> --metadata <your-metadata>

    Par exemple :

    aws ivs put-metadata --channel-arn arn:aws:ivs:us-west-2:465369119046:channel/GbiYJna5hFoC --metadata '{"question": "What does IVS stand for?", "correctIndex": 0, "answers": ["interactive video service", "interesting video service", "ingenious video service"]}'
  2. Amazon IVS vérifie si le flux est en direct. Si le flux n'est pas actif, vous obtenez une erreur. Sinon, la CLI est renvoyée sans erreur et les métadonnées (blob de texte) sont insérées dans le flux. Cela se produit dès que possible. Il n'y a aucune garantie quant au moment où cela se produit. Cependant, tous les utilisateurs voient les métadonnées au même point dans le flux.

Utilisation de l’API Amazon IVS

Pour insérer des métadonnées temporisées par programmation, utilisez le point de terminaison PutMetadata.

Voici un exemple de requête HTTP :

POST /PutMetadata HTTP/1.1 { "channelArn": "my_channel", "metadata": "{\"question\": \"What does IVS stand for?\", \"correctIndex\": 0, \"answers\": [\"interactive video service\", \"interesting video service\", \"ingenious video service\"]}" }

Utilisation du SDK de diffusion IVS

Vous pouvez insérer des métadonnées temporisées en bande à l’aide du SDK de diffusion IVS. Cela peut être utile pour synchroniser les métadonnées avec le contenu audio et vidéo.

  • Android : dans la classe BroadcastSession, utilisez sendTimedMetadata.

  • iOS : dans la classe IVSBroadcastSession, utilisez sendTimedMetadata.

Consommation de métadonnées temporisées

Utilisez le lecteur Amazon IVS pour utiliser les métadonnées temporisées intégrées dans un flux vidéo. Consultez Kit SDK du lecteur Amazon IVS et le reste de la documentation sur le lecteur.

Vous trouverez ci-dessous des exemples d'extraits qui impriment toutes les métadonnées reçues sur la console à l'aide du kit SDK du lecteur Amazon IVS. Un événement est déclenché chaque fois que la lecture atteint un segment avec des métadonnées intégrées. (L’événement est TEXT_METADATA_CUE pour le Web, onCue() pour Android et player(_:didOutputCue:) pour iOS.) Vous pouvez utiliser cet événement pour initier des fonctionnalités au sein de votre application client, telles que la mise à jour d'un widget interactif. Cet événement est déclenché à la fois pour le contenu en direct et le contenu enregistré.

Kit SDK du lecteur Amazon IVS pour le Web :

const player = IVSPlayer.create(); player.addEventListener(IVSPlayer.PlayerEventType.TEXT_METADATA_CUE, function (cue) { console.log('Timed metadata: ', cue.text); });

Kit SDK du lecteur Amazon IVS pour Android :

@Override public void onCue(@NonNull Cue cue) { if(cue instanceof TextMetadataCue) { Log.i("Timed Metadata: ", ((TextMetadataCue)cue).text); } }

Kit SDK du lecteur Amazon IVS pour iOS :

func player(_ player: IVSPlayer, didOutputCue cue: IVSCue) { if let textMetadataCue = cue as? IVSTextMetadataCue { print("Timed Metadata: \(textMetadataCue.text)") } }

Remarque : les métadonnées temporisées sont prises en charge pour iOS Safari et iOS Chrome dans la version 1.3.0 et les versions ultérieures du lecteur.

Exemple de démonstration : appli de quiz

Des exemples de code d’une appli de quiz interactive sont disponibles sur GitHub. Nous utilisons JSON via des métadonnées temporisées pour remplir une interface utilisateur de quiz et afficher les questions et les réponses. Les réponses peuvent être sélectionnées et indiquent si la sélection est correcte.

Affichage des métadonnées temporisées

Si vous le souhaitez, vous pouvez afficher les métadonnées temporisées intégrées dans votre flux en direct dans la console :

  1. Ouvrez la console Amazon IVS.

  2. En haut à gauche, sélectionnez l’icône hamburger pour ouvrir le volet de navigation, puis sélectionnez Live channels (Canaux en direct).

  3. Choisissez le canal dont vous souhaitez afficher le flux. Cela ouvrira une page avec toutes les informations le concernant.

    Le flux en direct est en cours de lecture dans la section Live stream (Flux en direct) de la page.

  4. Au bas de la fenêtre, sélectionnez Timed Metadata (Métadonnées temporisées).

    Pendant que le lecteur est en train de lire, chaque événement de données temporisées est reçu, et la valeur et l'heure de réception sont affichées.

Pour en savoir plus

Consultez Using Amazon Interactive Video Service Timed Metadata, la première partie d'un billet de blog en deux parties sur l'utilisation des métadonnées temporisées Amazon IVS.