Cómo controlar metadatos temporizados en transmisiones de DAI lineales

El SDK de inserción de anuncios multimedia interactivos (IMA) se basa en información de metadatos incorporada en los segmentos de medios de la transmisión (metadatos en banda), o en el archivo de manifiesto de transmisión (metadatos en manifiesto) para rastrear posiciones y eventos de anuncios del cliente. Los metadatos están disponibles en la transmisión de DAI en diferentes formatos, según el tipo de transmisión que se reproduce. El SDK de IMA DAI controla todos los formatos de metadatos a través de una sola API.

Su aplicación es responsable de capturar los metadatos y reenviarlos al SDK de IMA de DAI. El SDK ofrece StreamManager.onMessage() para pasar esta información. Este método reenvía metadatos en forma de Objeto msg proporcionado por el puerto roVideo. Luego, el SDK de DAI de IMA los procesa para establecer los tiempos de los eventos de anuncios. Se necesita un solo argumento:

  • msg: Es un objeto de tipo de mensaje proporcionado por el puerto roVideo.

Código de muestra de metadatos

Este es un ejemplo de cómo controlar los metadatos del puerto roVideo y y pasarla al SDK de IMA de DAI a través de StreamManager.onMessage().

Sub runLoop()
  ' Forward all timed metadata events to IMA.
  m.top.video.timedMetaDataSelectionKeys = ["*"]

  ' Cycle through all the fields and set listeners.
  ' IMPORTANT: Failure to listen to the position and timedmetadata fields could
  ' result in ad impressions not being reported.
  m.port = CreateObject("roMessagePort")
  fields = m.top.video.getFields()
  for each field in fields
    m.top.video.observeField(field, m.port)
  end for

  while True
    msg = wait(1000, m.port)
    if m.top.video = invalid
      print "exiting"
      exit while
    end if

    m.streamManager.onMessage(msg)
    currentTime = m.top.video.position
    If currentTime > 3 And not m.top.adPlaying
       m.top.video.enableTrickPlay = true
    End If
  end while
End Sub

Obtén más información para incorporar los metadatos de transmisión que controlan el bucle. en tu app, consulta la Guía de introducción de IMA Roku El Objeto de escucha de eventos y sección de inicio de la transmisión de la guía contiene el bucle de control de metadatos.

Transmisiones HLS CMAF

Las transmisiones de HLS de DAI lineal que usan el Common Media Application Framework (CMAF) pasan los metadatos sincronizados a través de cuadros eMSGv1 en banda siguiendo el estándar ID3 a través de CMAF. Estos cuadros de eMSG incorporados al comienzo de cada segmento de medios, y cada eMSG ID3 contiene un PTS en relación con la última discontinuidad de la transmisión.

Para Roku de IMA, todas las transmisiones de CMAF HLS envían datos ID3 en banda con el formato eMSGv0. La IMA combina la información proporcionada por el formato eMSGv0 con información del objeto de video.

Para habilitar el análisis adecuado de los eventos ID3 de transmisión de CMAF HLS, debes enviar tu un objeto de video en la solicitud de transmisión mediante StreamRequest.videoObject