apple/HLS

[HLS] Incorporating Ads into a Playlist

lgvv 2024. 12. 5. 01:04

Incorporating Ads into a Playlist

https://developer.apple.com/documentation/http-live-streaming/incorporating-ads-into-a-playlist

  • 플레이리스트에 브랜딩 또는 광고 추가.

목차

Overview

  • 자신의 사이트에서 브랜드 혹은 광고를 보여주고자 하나, 가장 단순한 방법은 각 플레이리스트에 광고 정보를 가진 영상을 병합하는 것임.
    • 그러나, 수백개의 플레이리스트 목록을 가진 경우 모든 플레이리스트를 인코딩을 다시해야 하며, 각 플레이리스트와 광고를 복제해야 함.
  • 광고를 먼저 재생하는 별도의 파일을 플레이리스트에 전달 후, 이후 기존 영상. 플레이리스트를. 재생.
    • 그러나, 이 접근 방식의 문제는 광고에서 기존 영상으로 전환하는 동안 품질이 떨어지는 문제점 존재.
    • 예를들면, 클라이언트가 최대한 빨리 읽을 수 있는(로드 가능한) 낮은 데이터 속도로 재생하기 시작한 후, 가능한 최상의 경험을 제공하고자 속도를 점차 증가시킴.
    • 광고 재생이 끝나면, 기존 영상은 낮은 데이터 속도로 시작하여 품질이 향상됨. (광고 처럼 동일하게.)
    • 또한 영상 중간에 광고를 넣을 경우 지속적인 품질 저하가 발생함.
  • 이런 문제에 대한 해결책은 EXT-X-DISCONTINUITY 태그를 사용해 변화가 오고 있다는 것을 사용자에게 미리 알리는 것임.
  • 따라서 해당 태그는 사용자가 스트리밍 미디어에 오는 변화를 미리 준비 가능하게 함.

Example

  • 다음 예제에서는 EXT-X-DISCONITY 태그를 사용하여 18초 광고(세그먼트 ad0.ts 및 ad1.ts) 앞에 오는 동영상을 재생하는 스트림 예제.
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:4
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:10.0,
ad0.ts
#EXTINF:8.0,
ad1.ts
#EXT-X-DISCONTINUITY
#EXTINF:10.0,
movieA.ts
#EXTINF:10.0,
movieB.ts
  • 앞 포스팅에서 나온 태그는 설명을 생략

EXT-X-DISCONTINUITY

  • 뒤에 있는 미디어 파일과 앞에 있는 미디어 파일 사이의 인코딩 불연속성임을 가리킴.

EXT-X-DISCONTINUITY-SEQUENCE

  • 서로 다른 variant 스트림 또는 동일한 variant 스트림의 서로 다른 렌더링 간에 동기화를 제공
  • 해당 태그는 불연속성이 있는 라이브 이벤트에 사용해야 함.