선형 DAI 스트림의 시간이 지정된 메타데이터 처리

양방향 미디어 광고 (IMA) 동적 광고 삽입 SDK (DAI)는 스트림의 미디어 세그먼트에 삽입된 메타데이터 정보 (대역 내 메타데이터), 스트리밍 매니페스트 파일 (매니페스트 내 메타데이터)에서 위치 및 클라이언트 측 광고 이벤트를 지원합니다. 메타데이터는 DAI 스트림에서 사용할 수 있습니다. 여러 형식으로 표시할 수 있습니다. IMA DAI SDK는 단일 API를 통해 모든 메타데이터 형식을 처리합니다.

앱은 메타데이터를 캡처하여 IMA DAI SDK에 전달해야 합니다. SDK는 StreamManager.onMessage() 드림 메서드를 사용하여 이 정보를 전달합니다. 이 메서드는 msg 객체입니다. 이러한 객체는 광고 이벤트의 타이밍을 설정합니다. 한 번에 인수:

  • msg: roVideo 포트에서 제공하는 메시지 유형 객체입니다.

메타데이터 샘플 코드

다음은 roVideo 포트에서 메타데이터를 처리하는 방법과 StreamManager.onMessage()를 통해 IMA DAI SDK에 전달합니다.

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

루프 처리 스트림 메타데이터를 통합하는 방법에 관한 자세한 내용 삽입하고 싶다면 IMA Roku 시작 가이드를 참조하세요. 이 이벤트 리스너와 스트림 시작 섹션 메타데이터 처리 루프가 포함되어 있습니다.

HLS CMAF 스트림

CMAF (Common Media Application Framework) 패스를 사용하는 선형 DAI HLS 스트림 ID3~ CMAF 표준이 있습니다. 이러한 eMSG 상자는 각 미디어 세그먼트의 시작 부분에 삽입되며, 각 ID3 eMSG에는 스트림의 마지막 중단 시점을 기준으로 한 PTS입니다.

IMA Roku의 경우 모든 HLS CMAF 스트림은 eMSGv0 형식을 사용하여 대역 내 ID3 데이터를 전송합니다. IMA는 eMSGv0 형식으로 제공한 정보와 정보를 결합합니다. 동영상 객체를 생성합니다.

HLS CMAF 스트림 ID3 이벤트의 적절한 파싱을 사용 설정하려면 동영상 객체를 사용하여 StreamRequest.videoObject