Amazon Web Services ブログ

AWS Elemental MediaTailor の Channel Assembly を使用して既存のソースから仮想チャネルを起動する方法

放送局またはオーバーザトップ (OTT) のチャネルオペレータのお客様は、複数の既存オンデマンドソースから収集したプログラムをリニアプレイリストに挿入することで、仮想チャンネルを作成できるようになりました。

小規模な視聴者のグループ (興味や地域的な嗜好に基づく視聴者のカテゴリなど) 向けにカスタマイズされたチャネルを作成する場合、オンラインストリーミング向けにメディアをトランスコードする必要があり、また、カタログから既存のメディアを見つけ出し選別する作業も複雑なために、従来は膨大なコストが必要とされていました。

AWS Elemental MediaTailor の Channel Assembly により、既存のカタログ内のトランスコード済みの動画セグメントを再利用して、静的または動的な再生リストを作成し、コンテンツを視聴者にストリーミングできるようになりました。これにより、複数の地域やビューアの順列に合わせ、ソースコンテンツを再トランスコードする必要がなくなります。

スケジュールオプションは複数の中から選択が可能です。ループコンテンツの他にも、スケジュールに動的にプログラムを追加するために、手動でプログラムを追加したり、推奨エンジンによって提供されるプログラムラインナップを挿入したりできます。また、インテリジェントなプログラム認識ルールを使用して、広告挿入のスケジュールを設定することもできます。

AWS Elemental MediaTailor の使用開始方法
ここでは、既に保有しているコンテンツを使用しながら、1 つの HLS パッケージストリームと 1 つの DASH パッケージストリームを組み合わせ、新しいストリーミングチャネルを作成する場合を考えてみます。このコンテンツは、ビットレート列をそろえ、各レベル (コーデック、解像度、フレームレートなど) のパラメータも同じくし、統一された特性でエンコード化とパッケージ化される必要があります。このために、AWS Elemental MediaConvert を使用してコンテンツを準備します。またそのコンテンツは、Amazon Simple Storage Service (S3) に保存します。ソース形式は、HLS、DASH、および CMAF (HLS と DASH マニフェスト使用) がサポートされます。この例のコンテンツは CDN を介して利用可能で、当然のことながら Amazon CloudFront を使用しています。

最初に取るべきステップは、コンテンツのソースを定義し、スケジュールに含める個々のアセットを登録することです。AWS Elemental MediaTailor コンソールの [Channel Assembly] の下で、[ソースロケーションの作成] をクリックします。

Elemental Channel Assembly – ソースロケーションの作成

次に、使用するビデオソースを追加します。

MediaTailor Channel Assembly – VOD ソースの追加

あるいは、AWS コマンドラインインターフェイス (CLI) を使用する場合は、次のようになります。

# Create a Source Origin
aws mediatailor create-source-location \
    --source-location-name NewsBlogSourceLocation
    --http-configuration \
           BaseUrl=https://dyye954rrfxy8.cloudfront.net // <-- this is my CloudFront distribution DNS name
{
    "Arn": "arn:aws:mediatailor:us-west-2:1234567890:sourceLocation/NewsBlogSourceLocation",
    "CreationTime": 1614660822156,
    "HttpConfiguration": {
        "BaseUrl": "https://dyye954rrfxy8.cloudfront.net"
    },
    "LastModifiedTime": 1614660822156,
    "Name": "NewsBlogSourceLocation"
}		   

# Register two video assets
aws mediatailor create-vod-source \
    --source-location-name NewsBlogSourceLocation \
    --vod-source-name MyFirstVodSource \
    --http-package-configurations \
        Id=hls,Path=/out/v1/24247f7e7f2942509058713671dce466/209b7701f2224791a9a44440e6e5b9e0/e2fdd7d6ae5f4e41ac57089be4de2d02/index.m3u8,SourceGroup=hls,Type=HLS \
        Id=cmaf,Path=/out/v1/24247f7e7f2942509058713671dce466/d71309185897405383031fd7d4515198/8901ed3df0e842c99fd8523c5b935d2f/index.m3u8,SourceGroup=cmaf,Type=HLS
{
    "Arn": "arn:aws:mediatailor-gamma:us-west-2:898676505562:vodSource/NewsBlogSourceLocation/MyFirstVodSource",
    "CreationTime": 1614661120839,
    "HttpPackageConfigurations": [
        {
            "Id": "hls",
            "Path": "/out/v1/24247f7e7f2942509058713671dce466/209b7701f2224791a9a44440e6e5b9e0/e2fdd7d6ae5f4e41ac57089be4de2d02/index.m3u8",
            "SourceGroup": "hls",
            "Type": "HLS"
        },
        {
            "Id": "cmaf",
            "Path": "/out/v1/24247f7e7f2942509058713671dce466/d71309185897405383031fd7d4515198/8901ed3df0e842c99fd8523c5b935d2f/index.m3u8",
            "SourceGroup": "cmaf",
            "Type": "HLS"
        }
    ],
    "LastModifiedTime": 1614661120839,
    "Name": "MyFirstVodSource",
    "SourceLocationName": "NewsBlogSourceLocation"
}

aws mediatailor create-vod-source \
    --source-location-name NewsBlogSourceLocation \
    --vod-source-name MySecondVodSource \
    --http-package-configurations \
        Id=hls,Path=/out/v1/5bc2c7b8a384403681222f703c6dd3ee/209b7701f2224791a9a44440e6e5b9e0/e2fdd7d6ae5f4e41ac57089be4de2d02/index.m3u8,SourceGroup=hls,Type=HLS \
        Id=cmaf,Path=/out/v1/5bc2c7b8a384403681222f703c6dd3ee/d71309185897405383031fd7d4515198/8901ed3df0e842c99fd8523c5b935d2f/index.m3u8,SourceGroup=cmaf,Type=HLS

{ ... } 

2 番目のステップでは、チャネルを作成し、チャンネルの出力とそのアクセス権限を定義します。

MediaTailor Channel Assembly – チャネルの作成ステップ 1

MediaTailor Channel Assembly – チャネルの作成ステップ 2

MediaTailor Channel Assembly – チャネルの作成ステップ 3

AWS アカウント ID と AWS リージョン名を、実際にご使用のものに置き換えることを忘れないでください。

この処理は、CLI により自動化することができます。

# Create the channel
aws mediatailor create-channel \
    --channel-name NewsBlogChannel \
    --playback-mode LOOP \
    --outputs \
        HlsPlaylistSettings={ManifestWindowSeconds=30},ManifestName=index,SourceGroup=hls  \
        HlsPlaylistSettings={ManifestWindowSeconds=30},ManifestName=cmaf,SourceGroup=cmaf

{ ... } 

# define the channel access permissions
# do not forget to replace *MY ACCOUNT ID* with your actual AWS Account ID.Also adjust the AWS Region name.
aws mediatailor put-channel-policy \
    --channel-name NewsBlogChannel \
    --policy "{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Sid\": \"AllowAnonymous\", \"Effect\": \"Allow\", \"Principal\": \"*\", \"Action\": \"mediatailor:GetManifest\", \"Resource\": \"arn:aws:mediatailor:us-west-2:*MY ACCOUNT_ID*:channel/NewsBlogChannel\" } ] }"

チャンネルを開始する前の 3 番目で最後のステップでは、ビデオソースを追加します。これは、全体に対して一括で実行することも、視聴者がストリームを見ているときに動的に調整することもできます。プログラムは、スケジュール内のアセットとモーメントを組み合わせたものです。必要に応じて、他のプログラムの前または後にプログラムを追加することができます。

MediaTailor Channel Assembly – プログラムの作成

また、CLI を使用すると、これを自動化することができます:

aws mediatailor create-program \
    --channel-name NewsBlogChannel \
    --schedule-configuration "Transition={Type=RELATIVE,RelativePosition=AFTER_PROGRAM}" \
    --program-name MyFirstProgram \
    --vod-source-name MyFirstVodSource \
    --source-location NewsBlogSourceLocation
{
    "AdBreaks": [],
    "Arn": "arn:aws:mediatailor:us-west-2:1234567890:program/NewsBlogChannel/MyFirstProgram",
    "ChannelName": "NewsBlogChannel",
    "CreationTime": 1614661735435,
    "LastModifiedTime": 1614661735435,
    "Name": "MyFirstProgram",
    "SourceLocationName": "NewsBlogSourceLocation",
    "VodSourceName": "MyFirstVodSource"
}

aws mediatailor create-program \
    --channel-name NewsBlogChannel \
    --schedule-configuration "Transition={Type=RELATIVE,RelativePosition=AFTER_PROGRAM,RelativeProgram=MyFirstProgram}" \
    --program-name MySecondProgram \
    --vod-source-name MySecondVodSource \
    --source-location NewsBlogSourceLocation 
{ ... }	

最後に、チャンネルを開始します。使用料金はこの時点から発生します。

MediaTailor Channel Assembly – チャネルの開始

いつでも describe-channel を呼び出すことで、出力形式ごとに 1 つ、チャネルのエンドポイントを取得できます。

aws mediatailor start-channel \
    --channel-name NewsBlogChannel

aws mediatailor describe-channel \
    --channel-name NewsBlogChannel

{
    "Arn": "arn:aws:mediatailor:us-west-2:1234567890:channel/MyFirstChannel",
    "ChannelState": "RUNNING",
    "CreationTime": 1613709143819,
    "Name": "MyFirstChannel",
    "Outputs": [
        {
            "HlsPlaylistSettings": {
                "ManifestWindowSeconds": 30
            },
            "ManifestName": "index",
            "PlaybackUrl": "https://abc123.pdx-0.egress.channel-assembly.elemental.aws.dev/v1/channel/NewsBlogChannel/index.m3u8",
            "SourceGroup": "hls"
        },
        {
            "HlsPlaylistSettings": {
                "ManifestWindowSeconds": 30
            },
            "ManifestName": "cmaf",
            "PlaybackUrl": "https://abc123.pdx-0.egress.channel-assembly.elemental.aws.dev/v1/channel/NewsBlogChannel/cmaf.m3u8",
            "SourceGroup": "cmaf"
        }
    ],
    "PlaybackMode": "LOOP"
}

最新のウェブブラウザ (このテストには Safari を使用しました) など互換性のあるクライアントや ffplay でエンドポイントを開くことで、チャネルをテストできます。このドキュメントでは、広告ブレイクを追加する方法や、CloudFront設定を作成して、ストリームを 1 ステップだけで配信する方法など、より高度な例をご覧いただけます。

ご自身の AWS アカウントで上記のコマンドを適用しテストを完了した後は、さらなる料金の発生を止めるために、チャネルを停止することを忘れないでください。

通常どおり、前払いが不要で、支払いは使用した分のみです。オンデマンドアセットの基本料金は、チャネル時間あたり 0.10 USD です。これは、24 時間 365 日運営しているチャネルの場合、チャネル時間あたり 73 USD (月間) に相当します。

AWS Elemental MediaTailor Channel Assembly は、米国東部 (バージニア北部)米国西部 (オレゴン)アジアパシフィック (シンガポール)アジアパシフィック (シドニー)アジアパシフィック (東京)欧州 (フランクフルト)、および欧州 (アイルランド) のリージョンでご利用が可能です。本日よりご利用いただけます。