Incorporación de metadatos en una transmisión de video - Amazon Interactive Video Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Incorporación de metadatos en una transmisión de video

Los metadatos cronometrados de Amazon Interactive Video Service (IVS) proporcionan una forma de incorporar metadatos en una transmisión de Amazon IVS. Garantiza que todos los espectadores reciban los metadatos a la vez en la transmisión de vídeo, independientemente de la latencia de la transmisión o la ubicación geográfica.

¿Qué son los metadatos cronometrados?

Los metadatos cronometrados son metadatos con marcas temporales. Se pueden insertar en una transmisión mediante programación, utilizando la API de IVS o el SDK de transmisión de IVS. Cuando Amazon IVS procesa una transmisión, los metadatos cronometrados se sincronizan con los fotogramas de audio y video. Durante la reproducción, todos los espectadores de la transmisión obtienen los metadatos a la vez en relación con la transmisión. El código de tiempo sirve como punto de referencia, que se puede utilizar para activar una acción en función de los datos, como la siguiente:

  • Actualización de las estadísticas de los jugadores en una transmisión deportiva.

  • Envío de detalles del producto para una transmisión de compras en directo.

  • Envío de preguntas para una transmisión de preguntas en directo.

Los metadatos cronometrados de Amazon IVS utilizan etiquetas ID3 incorporadas en los segmentos de video. Como resultado, están disponibles en el video grabado.

Configuración de permisos de IAM

Requisito previo: antes de continuar, debería consultar Introducción al streaming de baja latencia de IVS (incluida la creación de un usuario de IAM y la configuración de los permisos).

Luego, debe conceder permiso a su usuario de IAM para utilizar metadatos cronometrados. Sigue estos pasos:

  1. Inicie sesión en la consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, elija Users (Usuarios) y, a continuación, elija el usuario que desea (el nombre de usuario que especificó al crear una cuenta de AWS).

  3. En la ventana de Summary (Resumen) del usuario, en la pestaña de Permissions (Permisos), elija Add inline policy (Agregar política en línea) (en el lado derecho).

  4. En la pestaña de JSON, pegue este blob:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ivs:PutMetadata" ], "Resource": "arn:aws:ivs:*:*:channel/*" } ] }
  5. Aún en la ventana de Create Policy (Crear política), elija Review Policy (Revisar política). Escriba un Nombre para la política y elija Create policy (Crear política).

  6. Volverá la ventana de Summary (Resumen) del usuario, que muestra el nuevo nombre de la política.

Inserción de metadatos cronometrados

Solo puede insertar metadatos cronometrados en una transmisión activa en un canal especificado.

Mediante la AWS CLI

Para las pruebas, la forma más sencilla de agregar metadatos cronometrados es con la AWS CLI. El uso de la AWS CLI requiere que primero descargue y configure la CLI en su máquina. Es posible que ya haya hecho eso cuando consultó Introducción al streaming de baja latencia de IVS; si no, hágalo ahora. Para obtener más información, consulte la Guía del usuario de la interfaz de línea de comandos de AWS.

Una vez que tenga la CLI:

  1. Ejecute el comando put-metadata e ingrese el ARN del canal y sus metadatos:

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

    Por ejemplo:

    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 comprueba si la transmisión está activa. Si la transmisión no está activa, obtendrá un error; de lo contrario, la CLI no presenta errores y los metadatos (blob del texto) se insertan en la transmisión. Esto sucede tan pronto como sea posible. No hay garantías de cuándo ocurre esto; sin embargo, todos los espectadores ven los metadatos en el mismo punto de la transmisión.

Uso de la API de Amazon IVS

Para insertar metadatos cronometrados mediante programación, utilice el punto de conexión de la API PutMetadata.

A continuación, se muestra un ejemplo de solicitud 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\"]}" }

Uso del SDK de transmisión de IVS

Puede insertar metadatos temporizados en banda mediante el SDK de transmisión de IVS. Esto puede resultar útil para sincronizar los metadatos con el contenido de audio y video.

  • Android: en la clase BroadcastSession, use sendTimedMetadata.

  • iOS: en la clase IVSBroadcastSession, use sendTimedMetadata.

Consumo de metadatos cronometrados

Utilice el reproductor de Amazon IVS para consumir metadatos cronometrados integrados en una transmisión de video. Consulte SDK del reproductor de Amazon IVS y el resto de la documentación del reproductor.

A continuación, se muestran fragmentos de ejemplo que imprimen los metadatos recibidos en la consola mediante el SDK del reproductor de Amazon IVS. Un evento se activa cada vez que la reproducción llega a un segmento con metadatos incorporados. (El evento es TEXT_METADATA_CUE para la web, onCue() para Android y player(_:didOutputCue:) para iOS). Puede utilizar este evento para iniciar la funcionalidad dentro de la aplicación del cliente, como actualizar un widget interactivo. Este evento se activa tanto para el contenido en directo como para el grabado.

Reproductor de Amazon IVS SDK para la Web:

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

Reproductor de Amazon IVS SDK para Android:

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

Reproductor de Amazon IVS SDK para iOS:

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

Nota: Los metadatos cronometrados son compatibles con Safari y Chrome en iOS, en la versión 1.3.0 del reproductor y versiones posteriores.

Demostración de ejemplo: aplicación del cuestionario

En GitHub se encuentran disponibles ejemplos de código de una aplicación de cuestionarios interactivos. Utilizamos JSON a través de metadatos cronometrados para completar una interfaz de usuario de cuestionarios a fin de mostrar las preguntas y respuestas. Las respuestas son seleccionables y revelan si la selección es correcta.

Plataforma de SDK del reproductor de Amazon IVS Repositorio de muestras

Web

https://github.com/aws-samples/amazon-ivs-basic-web-sample

En este repositorio, consulte la demostración del cuestionario (y la demostración en directo).

Android

https://github.com/aws-samples/amazon-ivs-player-android-sample

En este repositorio, consulte la demostración del cuestionario.

iOS

https://github.com/aws-samples/amazon-ivs-player-ios-sample

En este repositorio, consulte la demostración del cuestionario.

Visualización de los metadatos cronometrados

Si lo desea, puede ver los metadatos cronometrados integrados en su transmisión en directo, en la consola:

  1. Abra la consola de Amazon IVS.

  2. En la parte superior izquierda, elija el icono de hamburguesa para abrir el panel de navegación y, a continuación, elija Live channels (Canales en directo).

  3. Elija el canal de la transmisión que desea ver, para dirigirse a una página de detalles de ese canal.

    La transmisión en directo se está reproduciendo en la sección de Live stream (Transmisión en directo) de la página.

  4. En la parte inferior de la ventana, elija Timed Metadata (Metadatos cronometrados).

    Mientras el jugador está en una partida, a medida que se recibe cada evento de metadatos cronometrados, se muestran su valor y la hora en que se recibieron.

Para obtener más información

Consulte Uso de metadatos cronometrados de Amazon Interactive Video Service, la primera de una serie de blogs de dos partes sobre el uso de metadatos cronometrados de Amazon IVS.