AWS 기술 블로그

OTT 에서 AVOD 를 위한 비디오 라이브러리 준비하기

이 글은 “AWS for M&E” Blog의 게시된 “Preparing your video library for AVOD OTT by Brian Bedard and Scott Cunningham” 을 한국어로 번역 및 편집 하였습니다. 

주문형 비디오(Video On Demand, VOD) 콘텐츠를 스트리밍 할 수 있는 권한을 가진 고객은 구독 기반 VOD(Subscription Video On Demand, SVOD) 또는 광고 기반 VOD(Advertising Video On Demand, AVOD)의 두 가지 방법 중 하나로 미디어 컨텐츠 라이브러리를 수익화 하고 있습니다.

SVOD를 사용하면 월간 구독을 통해서 수익을 창출하여 구독자가 고정 요금으로 미디어 컨텐츠 라이브러리에 액세스하고 사용할 수 있습니다. 이 모델은 일반적으로 구독자가 광고를 보지 않고 콘텐츠를 소비할 수 있다는 것을 의미합니다. 또 다른 방법은 AVOD로, 서비스와 콘텐츠는 누구나 소비할 수 있지만 광고는 콘텐츠 중간에 배치됩니다. 고객은 광고를 재생해야 하며 이것이 고객의 비즈니스가 수익을 창출하는 방법입니다. SSAI(서버 측 광고 삽입)를 사용하면 클라이언트 측 기반의 광고 차단기가 콘텐츠 수익화 전략을 방해하지 않도록 방지할 수 있습니다.

이 게시물에서는 기존 미디어 컨텐츠 라이브러리에서 빠르고 효율적으로 수익을 창출하기 위한 AVOD 워크플로우를 만드는 모범 사례에 대해 살펴봅니다. 최종 고객에게 원활하게 전달하기 위해 가장 중요한 프로토콜, 조건 및 요구 사항을 검토하고 AWS에서 수익화 및 워크플로우의 단순성에 중점을 둡니다. 파일 기반 비디오 트랜스코딩 서비스인 AWS Elemental MediaConvert와 채널 어셈블리 및 개인화된 광고 삽입 서비스인 AWS Elemental MediaTailor를 사용하여 광고 삽입을 위해 VOD 컨텐츠를 큐레이팅하는 프로세스와 관련된 몇가지 구성 요소 및 표준을 살펴보겠습니다.

광고신호 구성요소

콘텐츠로 수익을 창출하기 위한 주요 고려사항은 광고 신호를 처리하는 방법입니다. 일부 콘텐츠에는 광고가 포함될 수 있는 광고 마커도 없을 수 있습니다. 일부 컨텐츠는SCTE(Society of Cable Telecommunications Engineers)–35 마커가 삽입되어 있을 수 있습니다. 다른 광고 시간에는 새로운 광고로 컨텐츠를 덮어써야 하는 기본적인 “슬레이트”가 포함될 수 있습니다. 이러한 요구 사항을 해결하기 위해 SCTE-35, VAST, VMAP 및 ESAM 표준의 조합을 사용합니다.

SCTE-35

SCTE-35는 광고 및 프로그래밍 제어를 위한 표준 신호입니다. SCTE-35 신호는 라이브 또는 VOD 스트림에서 모두 사용할 수 있으며 MediaTailor 에 신호를 보내거나 SpringServe 또는 FreeWheel과 같은 광고 결정 서버(ADS)에 연결하여 새로운 광고를 삽입할 수 있도록 알릴 수 있습니다. OTT(Over-the-Top) 출력을 생성할 때 MediaConvert는 SCTE-35 마커가 감지되는 세그먼트 사이의 하위 매니페스트에 ” discontinuities”을 배치합니다. 이를 통해서 MediaTailor 가 원활한 시청 경험을 위해 광고 재생을 정확하게 시작할 수 있습니다. 이렇게 하면 광고가 재생된 후 세그먼트 시작 부분에 IDR(Instantaneous decoding refresh) 프레임이 효과적으로 배치 되므로 플레이어는 중단 후 새로운 콘텐츠를 새로 수정하고 재생 해도 된다는 것을 알 수 있습니다. SCTE 마커를 사용하여 광고 삽입 또는 교체 신호를 보낼 수 있습니다.

VAST

VAST(Video Ad Serving template)는 광고 삽입 응용 프로그램과 ADS 간의 통신에 사용 되는 표준입니다. VAST XML 기반 스키마는 beacon URL 형태의 측정 정보뿐만 아니라 광고에 대한 자세한 메타데이터와 정보를 포함 하므로 MediaTailor는 추적 데이터를 ADS로 전송하여 광고 노출, 조회 또는 광고 완료를 효과적으로 계산할 수 있습니다. 이 신호는 모두 서버 측 구현에서 기본적으로 처리 되므로 고객은 플레이어를 커스터마이징 하지 않고도 더 빨리 시작할 수 있습니다. 추가적인 트래킹(Tracking) 요구사항이 있는 고객에 대해서도 클라이언트 측 신호 처리를 지원됩니다. ADS 요청은 광고 결정 및 개인화를 용이하게 하기 위해 시청자 별 연령, 성별, 인구 통계 및 기타 세그먼트로 분류하기 위한 PublisherID를 포함하는 경우가 많은 표준 URL 매개변수를 사용합니다. URL 매개변수는 생성이 간단하여 MediaTailor과 ADS 간의 상호 작용을 매우 간단하게 만듭니다.

[Figure 1. VAST예시]

VMAP

VMAP(Video Multiple Ad Playlist)는 광고 삽입 시스템에 더 상세한 정보를 제공하기 위해 VAST와 함께 사용 되는 표준입니다. VAST가 단일 광고 시간에 대한 광고 정보를 반환하는 반면, VMAP로 구성된 응답은 ADS가 단일 VMAP 응답에서 여러 VAST URL을 반환하여 여러 광고 시간에 여러 광고의 레이아웃을 지정할 수 있도록 합니다. 각각의 VAST URL은 한 번의 휴식에 대해 하나의 광고 모음을 반환하는 역할을 합니다. 이는 특정 미디어 컨텐츠에 대한 전체 광고 시간에 대한 구조를 계획할 때 유용합니다.

[Figure 2. VMAP예시]

ESAM

프레임 정확한 삽입을 달성하기 위해 MediaConvert는 중단 요청 시간의 정확한 타이밍을 호출하고 출력이 HTTP(DASH) 또는 HTTP Live Streaming(HLS)에 대하여 미디어테일러가 다운스트림에서 사용하기 위해 필요한 매니페스트를 만들 수 있는 ESAM(Event Signaling and Management) XML을 사용합니다. 다음은 MediaConvert 작업의 “Signal processing notification XML” 섹션에 포함할 수 있는 두 가지 ESAM XML 예입니다.

  • 이 XML은 10초와 5분에 각각 하나씩 두 개의 광고 시간을 삽입합니다.
  • 이 XML은 10초에 신호를 삽입하여 30초의 콘텐츠를 덮어씁니다.

이러한 XML을 사용하여 신호를 생성할 때 원본 매니페스트의 차이점을 살펴보십시오.

[Figure 3. ESAM에 대한 매니페스트 태그]

MPEG(Moving Picture Experts Group) – DASH 매니페스트는 광고 신호가 표시되는 위치를 보여줍니다. HLS와 달리 DASH 매니페스트 포맷은 XML 기반이며 광고 터치는 자체 <이벤트 스트림> 요소 내에서 참조됩니다. <이벤트> 요소에 대한 구체적인 프레젠테이션 시간은 미디어 구간 타임라인에서 광고 중단을 삽입해야 하는 위치를 예방합니다. <이벤트> 요소에 표준 기간은 MediaTailor가 컨텐츠의 전체 길이를 유지하기 위해 광고를 삽입할 수 있도록(평균 = 0) 기본 또는 기존 광고를 규칙적으로 유지(평균 > 0)합니다.

[Figure 4. ESAM XML의 예시]

VOD 콘텐츠에 SCTE-35 신호가 없는 경우 MediaTailor은 ADS에 의존하여 콘텐츠의 광고 배치 및 지속 시간을 지시하는 VMAP 응답을 제공합니다. VMAP 응답을 사용하여 광고를 삽입할 때 가장 좋은 결과를 얻으려면 먼저 VOD 컨텐츠에서 광고를 배치 할 수 있는 위치를 식별해야 합니다. 각각의 미디어 컨텐츠를 수동으로 스크러빙하고 변경되는 장면에 타임스탬프를 기록하여 작업을 수행할 수 있습니다. 또는 Amazon Rekognition과 같은 서비스와 함께 인공 지능을 사용 할 수 있습니다. Amazon Rekognition은 사전에 훈련되고 커스터마이징이 가능한 비전 기능을 제공하여 이미지와 비디오에서 의미있는 정보 추출할 수 있습니다.

이 블로그 게시물은 기계 학습을 사용해서 최적의 광고를 삽입 할 수 있는 참고 자료입니다. 광고 시간 위치가 결정되면 위에 언급된 두 시나리오와 유사한 ESAM 워크플로우를 사용하여 미디어를 트랜스코딩 해야 합니다. 그러면 광고 삽입 시스템이 올바른 위치에 광고를 연결하는데 도움이 됩니다. 광고 삽입을 위해 컨텐츠의 올바른 위치에서 세그먼트화 되도록 준비하지 않으면 MediaTailor가 세그먼트를 나누거나 미디어를 다시 트랜스코딩하거나 IDR 프레임을 추가하지 않기 때문에 클라이언트 환경이 저하됩니다. 따라서 최적의 세그먼트에 광고를 삽입합니다.

광고 삽입을 위한 미디어 준비

광고 삽입 워크플로우에 필요한 다양한 표준 및 프로토콜을 살펴봤으며 이제 미디어를 준비하는 단계를 살펴보도록 하겠습니다. 먼저 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 Amazon Simple Storage Service(Amazon S3)에 컨텐츠 라이브러리를 저장합니다. 미디어 컨텐츠 라이브러리 저장을 위해서 Amazon S3 스토리지 클래스의 선택은 중요합니다. Amazon S3 스토리지 클래스는 다양한 액세스 패턴에 가장 저렴한 스토리지를 제공하도록 설계되었습니다. 대 용량의 미디어 마스터 파일의 경우 MediaConvert를 실행하고 컨텐츠의 품질 관리를 통과하는 즉시 액세스 시간에 따라 비용을 균형 있게 조정하는 유연한 검색 옵션을 제공하는 Amazon S3 Glacier Flexible Retrieve 또는 데이터의 장기간 보존 및 보관을 지원하는 Amazon S3 Glacier Deep Archive로 이동해야 합니다.

또는 대규모 컨텐츠를 시청자에게 제공하는 OTT에서는 액세스 빈도에 따라 가장 비용 효율적인 액세스 계층으로 데이터를 자동으로 이동하는 Amazon S3 Intelligent-Tiering(S3 Intelligent-Tiering)을 사용할 수 있습니다. 이를 통해서 계층간의 전환을 관리하여 스토리지 비용을 절약할 수 있습니다. MediaConvert 를 사용하여 HLS, DASH 또는 CMAF(Common Media Application Format)와 같은 출력 유형을 결정해야 합니다. ESAM 워크플로우를 사용하여 SCTE-35 마커를 입력하는 경우 다음 스크린샷에서 자세히 보여지는 대로 각 형식에 대해 패스스루/삽입을 활성화해야 합니다.

DASH 컨테이너 설정

[Figure 5. ESAM SCTE-35 설정]

MediaTailor와 같은 광고 삽입 서비스는 각 미디어 렌디션에 대한 세그먼트 타임라인으로 DASH 매니페스트를 구성해야 합니다. 기본적으로 이 설정은 MediaConvert에서 활성화되지 않습니다.

[Figure 6. 세그먼트 타임라인 설정]

MediaConvert 작업의 ESAM SCC(Signal Confirmation and Conditioning) XML을 기반으로 매니페스트를 적절하게 조정하는 방법에 대한 지침을 제공하는GitHub repository를 확인하시기 바랍니다.

MediaConvert는 MP4 세그먼트의 헤더에서 SCTE-35 신호로 MPEG-DASH를 출력하지만 매니페스트에 광고 신호를 쓰지 않습니다. 따라서 MediaTailor가 광고 지점을 인식하고 광고를 위한 VAST 요청을 발행 하려면 매니페스트의 해당 구간에 EventStream 및 Event 를 추가할 수 있도록 이후에 트랜스코딩 Lambda 함수가 필요합니다.

HLS 전송 스트림(TS) 컨테이너 설정

[Figure 7. SCTE-35 소스 설정]

HLS 그룹 설정

[Figure 8. HLS 그룹 설정]

CMAF 컨테이너설정

[Figure 9. CMAF 컨테이너 설정]

[*참고  : CMAF를 사용하는 경우 올바른 형식으로 광고를 준비하려면 MediaTailor 에 대해 사용자 지정 코드 변환 프로파일을 생성해야 합니다.]

사이드카(sidecar) 캡션 타이밍

MediaTailor가 콘텐츠에 광고를 원활하게 연결하려면 다양한 미디어 유형의 세그먼트 길이가 일관되어야 합니다(예: 세그먼트당 6초). 이는 HLS의 WebVTT(Web Video Text Tracks) 또는 MPEG-DASH의 TTML(Timed Text Markup Language)과 같은 자막 트랙에도 적용됩니다.

HLS TS 사이드카 캡션 설정

MediaConvert는 현재 HLS WebVTT 세그먼트를 300초 간격으로 출력합니다. 이는 HLS 제작 스펙(5.7)에서 지원되지만 일반적으로 비디오 및 오디오 세그먼트가 Apple의 권장 사항인 6초로 설정되기 때문에 광고 삽입에는 적합하지 않습니다. HLS 출력을 해결하기 위한 솔루션을 제공하는 GitHub repository를 검토하십시오.

[Figure 10. Caption 설정]

MPEG-DASH 사이드카 캡션 설정

MPEG-DASH에서는Fragmented MPEG-4(fMP4) 사이드카 캡션 형식에서 “TTML”을 선택해야 합니다. 이는 DASH 매니페스트의 자막 세그먼트에 대한 세그먼트 타임라인을 생성하도록 MediaConvert에 신호를 보냅니다.

[Figure 11. MPEG-DASH 에서의 Caption 설정]

워크플로우 상세 조정

플레이어에서 ADS로 전달하는 파라미터는 사용자에게 반환되는 광고를 결정할 수 있습니다. MediaTailor은 이를 “player params“라고 합니다. 여기에는 광고를 타겟팅하는 데 도움이 될 수 있는 뷰어, 사용자 이름 또는 위치 정보에 대한 정보가 포함될 수 있습니다. 이와 관련된 광고를 표시하는 데 도움이 되는 한 가지 일반적인 방법은 원본 매니페스트에서 #EXT-X-ASSET 태그를 사용하여 ADS가 재생 중인 콘텐츠를 알 수 있도록 하는 것입니다. 미디어 자산 관리(MAM) 시스템 내부의 컨텐츠 정보를 참조하기 위해 서버리스 이벤트 기반 컴퓨팅 서비스인 AWS Lambda의 기능을 사용하여 트랜스코딩 이후에 추가할 수 있습니다. 또한UPID (unique program ID) 데이터를 SCTE 마커에 주입하고 MediaTailor에서 추출하여 ADS로 보낼 수 있습니다. 프로그램, 시즌 또는 에피소드의 이름을 포함할 수 있는 비공개 UPID 데이터는 스폰서십 광고 타겟팅, 장르 또는 연령 등급에 유용합니다. 이 데이터는 문맥 광고 타겟팅에 유용하고 성인 광고를 포함하지 않도록 어린이 콘텐츠를 보호할 수 있습니다. 시청자에게 더 관련성 높은 광고를 표시하면 전반적인 참여율을 높이고 수익을 높일 수 있습니다.

VAST 요청을 처리할 때 일부 고객은 광고 기간을 지정하지 않는 #EXT-X-CUE-OUT:0 마커를 사용합니다. 이 경우 MediaTailor은 ADS에게 5분간 애드팟(ad pod)를 요청 합니다. 이것은 ADS 에서 반환할 애드팟의 최대 기간을 조정할 수 있습니다. VMAP를 사용하면 광고 시간 길이는 ADS에 대한 VAST 요청이 생성될 때 채워지는 파라미터가 아닙니다. 대신 ADS는 VOD 컨텐츠의 식별자를 포함하는 플레이어 파라미터를 사용하여 전달되는 “AssetID”와 같은 파라미터에 의존합니다. 그런 다음 ADS는 VOD 컨텐츠에 대한 광고맵를 검색하고 광고 시간 위치 및 시간이 포함된VMAP 응답을MediaTailor에 반환합니다.

다음 단계

이 게시물 에서는 AVOD 콘텐츠 라이브러리의 수익 창출을 바로 시작하는 데 도움이 되는 다양한 구성 및 워크플로를 살펴보았습니다. 탐색할 다음 구성 요소는 암호화 및 AWS Elemental MediaPackage를 사용한 JITP(Just-In-Time Packaging) 로 인터넷을 통해 비디오를 전송할 수 있도록 안정적으로 준비하고 보호합니다. MediaPackage를 사용하면 HLS 를 사용하고 거의 실시간으로 DASH 또는 CMAF 출력을 생성하여 트랜스코딩 및 스토리지 요구 사항을 낮출 수 있습니다.

또한 MediaPackage 및 MediaConvert를 사용하면 고급 암호화 요구 사항을 위해 타사 디지털 권한 관리 공급자를 가져올 수도 있습니다. 이러한 빌딩 블록이 함께 연결되면 고객을 위해 복원력이 뛰어나고 확장 가능하며 비용 효율적인 AVOD 제품을 구축할 수 있습니다.

YoHan Choi

YoHan Choi

최요한 Sr Edge Services Specialist SA 는 방송 미디어에 대한 다양한 설계와 개발 경험을 바탕으로 최적의 솔루션을 선택하여 비즈니스 성과를 달성할 수 있도록 고객과 함께 전문 미디어 솔루션 아키텍처를 구성하는 역할을 수행하고 있습니다.