Obsługa metadanych czasowych w liniowych strumieniach DAI

Działanie pakietu SDK do dynamicznego wstawiania reklam w interaktywnych reklamach medialnych (IMA) wymaga informacje o metadanych umieszczone w segmentach multimediów strumienia (metadane w paśmie), lub w pliku manifestu strumieniowego przesyłania danych (metadane w pliku manifestu), aby monitorować i zdarzeniami reklamowymi po stronie klienta. Metadane są dostępne ze strumienia DAI w różnych formatach w zależności od typu transmisji. IMA DAI Pakiet SDK obsługuje wszystkie formaty metadanych za pomocą jednego interfejsu API.

Twoja aplikacja odpowiada za rejestrowanie metadanych i przekazywanie ich do pakietu IMA DAI SDK. Pakiet SDK zawiera StreamManager.onMessage() do przekazywania tych informacji. Ta metoda przekazuje metadane w postaci obiektu msg udostępnianego przez port roVideo. Obiekty te są następnie przetwarzane przez pakiet IMA DAI SDK do określania czasu zdarzeń reklamowych. Potrzeba tylko jednej :

  • msg: obiekt typu msg, udostępniany przez port roVideo.

Przykładowy kod metadanych

Oto przykład obsługi metadanych z portu roVideo przekazać go do pakietu IMA DAI SDK w usłudze 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

Więcej informacji na temat włączania metadanych strumienia obsługi pętli do aplikacji, zobacz IMA Roku – przewodnik dla początkujących. detektora zdarzeń i rozpoczęcia strumienia. zawiera pętlę obsługi metadanych.

Strumienie HLS CMAF

Liniowe strumienie DAI HLS korzystające z karty Common Media Application Framework (CMAF) metadanych z sygnaturą czasową poprzez pola eMSGv1 w paśmie po ciągu ID3 do CMAF. Te pudełka eMSG są umieszczone na początku każdego segmentu multimediów, przy czym każda wiadomość eMSG o identyfikatorze ID3 zawiera PTS względem ostatniej nieciągłości w strumieniu.

W przypadku IMA Roku wszystkie strumienie HLS CMAF wysyłają dane w zakresie ID3 w formacie eMSGv0. IMA łączy informacje dostarczone w formacie eMSGv0 z informacjami z obiektu wideo.

Aby włączyć prawidłową analizę zdarzeń strumienia ID3 strumienia HLS w systemie CMAF, musisz wysłać swoją obiektu wideo w żądaniu strumienia za pomocą funkcji StreamRequest.videoObject