Open9

test VOD動画配信 プリロール広告 (MediaTailor)

marchanmarchan

2021.10.24 清水俊也
AWS Elemental MediaTailorでライブ配信時にプリロール広告を挿入してみた
https://dev.classmethod.jp/articles/aws-elemental-mediatailor-live-pre-roll/

2024.5.30 清水俊也
MediaTailor Ad insertionで広告付きVOD動画配信をやってみた [2024初夏編]
https://dev.classmethod.jp/articles/aws-elemental-mediatailor-ad-insertion-vod-2024-early-summer/

GitHub - aws-samples/aws-media-services-simple-vod-workflow: Lab that covers video conversion workflow for Video On Demand using AWS MediaConvert.
https://github.com/aws-samples/aws-media-services-simple-vod-workflow

GitHub - aws-samples/aws-media-services-simple-live-workflow: Workshop that covers AWS Elemental MediaLive, MediaPackage, and MediaTailor services
https://github.com/aws-samples/aws-media-services-simple-live-workflow

One Media Workshop
https://catalog.workshops.aws/one-media-workshop/en-US

marchanmarchan

動画配信 s3 bucket の新規作成と設定

  • bucketname dev-vod-******を新規に作成する。

  • パブリックアクセスをすべて ブロックをOFF に変更する。
     

  • バケットポリシーを編集する。

{
    "Version": "2012-10-17",
    "Id": "PublicReadForGetBucketObjects",
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::dev-vod-******/*"
        }
    ]
}
  • 動画配信 s3 bucket にCross-Origin Resource Sharing (CORS)を設定する。
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET",
            "HEAD"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    }
]

※すべてのドメインサイトの動画プレイヤーから動画の再生が可能になっている。

marchanmarchan

動画広告 s3 bucket の新規作成と設定

  • dev-adv-******を新規に作成する。

  • パブリックアクセスをすべて ブロックをOFF に変更する。
     

  • バケットポリシーを編集する。

{
    "Version": "2012-10-17",
    "Id": "PublicReadForGetBucketObjects",
    "Statement": [
        {
            "Sid": "PublicReadForGetBucketObjects",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::dev-adv-******/*"
        }
    ]
}
- 広告配信 s3 bucket では、Cross-Origin Resource Sharing (CORS)を設定しない。
marchanmarchan

動画コンテンツを動画配信 s3 bucket に配置して再生を確認

  • 動画コンテンツ(.m3u8 .ts )を動画配信バケット /vod/にアップロードする。
     https://dev-vod-
    .s3.ap-northeast-1.amazonaws.com/vod/****.m3u8

  • 動画再生プレイヤーで動画の再生を確認する。
     例:https://hlsjs.video-dev.org/demo/

marchanmarchan

動画広告を動画広告 s3 bucket に配置して再生を確認

  • 動画広告(.mp4 )を動画広告バケット /adv/にアップロードする。
     https://dev-adv-.s3.ap-northeast-1.amazonaws.com/adv/*.mp4

  • 動画再生プレイヤーで動画の再生を確認する。
     https://dev-adv-.s3.ap-northeast-1.amazonaws.com/adv/*.mp4

marchanmarchan

VASTの作成

  • vast ファイルを作成する。
    ・URI、解像度、再生秒数を動画広告に合わせて作成する。
vast.xml
<VAST version="3.0">
  <Ad>
    <InLine>
      <AdSystem>2.0</AdSystem>
      <AdTitle>ad-1</AdTitle>
      <Impression/>
      <Creatives>
        <Creative>
          <Linear>
            <Duration>00:00:15</Duration>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4" width="1920" height="1080">
                <![CDATA[https://dev-adv-******.s3.ap-northeast-1.amazonaws.com/adv/******.mp4]]>
              </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>

VASTの配置

  • VASTファイルを 動画広告 s3 bucket に保管する。
  • アクセスできるか確認する。
$ curl -I https://dev-adv-******.s3.ap-northeast-1.amazonaws.com/adv/***vast^***.xml

HTTP/1.1 200 OK
x-amz-id-2: 1QEYakJhpexCT3yh2mrus7jTkvcymSrXmNzR/VOqEWqHxuD/VMnYaWWXfcAQTGUdnFX3H+CWfbQ=
x-amz-request-id: 1SNZV8Z9JTHJW7A7
Date: Fri, 05 Jul 2024 06:57:33 GMT
Last-Modified: Fri, 05 Jul 2024 06:56:01 GMT
ETag: "9d2cd678cc7d559617b7d033ad7be736"
x-amz-server-side-encryption: AES256
Accept-Ranges: bytes
Content-Type: text/xml
Server: AmazonS3
Content-Length: 595

$ curl -i https://dev-adv-******.s3.ap-northeast-1.amazonaws.com/adv/***vast^***.xml
marchanmarchan

ここまでのまとめ

  • 動画コンテンツ
     https: // vod-xxxxxx.s3.ap-northeast-1.amazonaws.com/vod/xxxxxx.m3u8

  • 動画広告
      https: // adv-xxxxxx.s3.ap-northeast-1.amazonaws.com/adv/xxxxxx.mp4

  • 広告サーバ VAST
      https: // adv-xxxxxx.s3.ap-northeast-1.amazonaws.com/adv/xxxxxx.xml

※広告サーバのVASTファイルはサーバ上で動的生成されたVASTではなく、
 動画広告の1素材のみに限定して固定運用のVASTファイルを手動作成したもの

marchanmarchan

Media Tailor の設定

  • Media Tailor で「設定の作成」を行う
    ・Name: vod-preroll
    ・Content-source: 動画コンテンツサーバのドメイン 
    ・Ad decision server: VASTファイルのURI 
     それぞれを入力して設定を作成する。

  • Management Console に表示、生成された値を確認する。

セッション初期化プレフィックス
https://861a57219b304e7f938a65153541d5f8.mediatailor.ap-northeast-1.amazonaws.com/v1/session/73c20b250e410639266d76b11b66c2399fd716f7/vod-preroll/

HLS 再生プレフィックス
https://***.amazonaws.com/v1/master/73c20b250e410639266d76b11b66c2399fd716f7/vod
-preroll/](https://861a57219b304e7f938a65153541d5f8.mediatailor.ap-northeast-1.amazonaws.com/v1/master/73c20b250e410639266d76b11b66c2399fd716f7/vod-preroll/

DASH 再生プレフィックス
[https://***.amazonaws.com/v1/dash/73c20b250e410639266d76b11b66c2399fd716f7/vod-preroll/](https://861a57219b304e7f938a65153541d5f8.mediatailor.ap-northeast-1.amazonaws.com/v1/dash/73c20b250e410639266d76b11b66c2399fd716f7/vod-preroll/)
  • 動画広告付き動画コンテンツ再生のURLを算出する
     HLS 再生プレフィックス+動画コンテンツのパス(ドメインを除いた部分)となる。
https://861a57219b304e7f938a65153541d5f8.mediatailor.ap-northeast-1.amazonaws.com/v1/master/73c20b250e410639266d76b11b66c2399fd716f7/vod-preroll/vod/**********.m3u8