[UPDATE] AWS Elemental MediaTailorにChannel Assembly機能が追加されました

AWS Elemental MediaTailorの新機能Channel Assemblyを使ってみました。複数のVODソースからプログラムを編成、これらを連続して配信する仮想ライブストリーミングチャンネルを作成することができます。
2021.03.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

清水です。本日お届けするアップデート情報はこちら!AWS Elemental MediaTailorに仮想リニアライブストリームを作成するチャンネルアセンブリ(Channel Assembly)機能が追加されました。(2021/03/11にポストされたアップデート内容となります。)

AWS Elemental MediaTailorは2017年11月末のリリース当時から、パーソナライズした動画の広告挿入サービスとしての機能を有していました。今回のアップデートで新たに追加された機能、仮想ライブストリームを作成するチャンネルアセンブリについてはこの広告挿入(Ad Insertion)とは大きく異なります。(広告挿入が可能な点は共通ですが)まったくの新機能と考えて良さそうです。

それゆえ、AWS Elemental MediaTailorのサービスページも大きく模様替えしています。(現在は英語ページのみ。)まずは冒頭の紹介文、「Linear channel assembly」と先頭に記載されていますね。

ページをスクロールさせてHow it worksの項目も確認してみましょう。こちらもまずChannel Assembly機能をアピールしています。

AWS Elemental MediaTailor

MediaTailorのマネジメントコンソールも確認してみます。完全に別項目(別機能)として並んでいるのがわかりますね。

ということで、本エントリではこのMediaTailorの新機能、Channel Assemblyを試してみたのでまとめてみます。VOD素材を使ったライブストリーミング用チャンネルが簡単に作成できました。

なお作成手順などは以下ブログエントリを参考にしています。

AWS Elemental MediaTailorのChannel Assembly機能を使ってみた

MediaTailorのChannel Assembly機能では、簡単に言えば、HLS形式などに変換済みのVODソースから、これらを連続して配信するライブストリーミングチャンネルが作成できます。作成の手順については、まずVODソースを管理するSource locationsというリソースの作成、ついでChannelリソースの作成となります。Channelリソースまで作成したらこのChannelをStartさせることで、ライブストリーミングがはじまります。

今回、VODソースについてはS3に格納されている以下マニフェストファイルから構成されるものを2種、用意しました。オブジェクトはS3バケット設定で公開指定状態です。

  • https://my-s3-bucket.s3-ap-northeast-1.amazonaws.com/Sample1.mov.m3u8
  • https://my-s3-bucket.s3-ap-northeast-1.amazonaws.com/Sample2.mov.m3u8

Source locationの作成

まずはSource locationsの作成です。マネジメントコンソールのMediaTailorのページ、メニューからChannel assemblyのSource locationsを選択し、[Create source location]で進みます。

Nameを適切に入力し、Baas URLとしてVODソースが格納されているS3のドメイン部分を入力します。その他の項目についてはデフォルトのまま、[Create source locationで作成します。

Source locationが作成できました。続いて遷移後のSource location詳細ページから[Add VOD Source]ボタンでVODソースの作成画面に進みます。

Nameを適切に入力、続くPackage configurationsにて、Relative pathを入力します。m3u8へのパスとして、Sample1.mov.m3u8を入力しました。(ここは必要に応じて、ファイル名のみではなくパスを入力します。)Source groupとTypeはデフォルトのまま(TypeはDASHも選択できるようですので、VODソース形式にあわせます。)、[Add VOD source]ボタンで作成します。

作成できました。続いてもう一つのVODソースについても設定します。パンくずリストから1階層戻ります。

遷移後の画面、先ほど作成したVOD sourceがあることを確認しつつ、[Add VOD source]ボタンで進みます。

先ほどと同様にVOD sourceを作成します。Nameは2つ目とわかるように変更、そしてRelative pathをSample2.mov.m3u8とします。

2つ目のVOD source作成後、Source locationsは以下の状態となります。

以上でSource locationsとVOD sourceの作成は完了です。続いてChannelの作成に移ります。

Channelの作成

メニューからChannel assemblyのChannelを選択し、[Create channel]で進みます。

Nameを適切に入力します。Playback modeの「Advanced playback modes will be available in future updates.」という説明文にわくわくしながら、[Next]で進みます。

Configure outputsの項目、Manifest nameはデフォルトとなっているindexを入力しました。Format typeはHLS、Source groupについてもデフォルトのまま[Next]で進みます。

Access controlの項目です、今回は検証目的のためAttach a public policyを選択しました。実際には要件など確認の上、適切な公開範囲としましょう。

Review and create画面で設定内容を確認し、[Create channel]ボタンでChannelを作成します。

ChannelにProgramを追加する

続いて、ChannelにProgramを追加していきます。Channel作成後に遷移したChannel詳細画面から[Add program]で進みます。

Program detailsでNameを適切に入力、Source location nameはSelect an existing source locationとし、セレクトボックスから先ほど作成したSource locationを選択します。VOD source nameのほうも、Select an existing VOD sourceとし、セレクトボックスからVODソースを選択します。まずは1つ目のVODソース(sample1)を選択しました。Playback configurationについてはデフォルトのまま、ページ最下部の[Add program]ボタンでプログラムを作成します。

一つ目のプログラムの作成が完了した段階で、Channelの詳細ページを確認してみましょう。Scheduleタブにプログラムとして、先ほど作成したプログラムがずらっと並んでいる状態になります。もう一つのVODソースから2つ目のプログラムを作成したので、再度[Add Program]ボタンで進みます。

Program detailsでNameを適切に入力、Source location nameは作成済みのSource locationを選択します。VOD source nameは2つ目のVODソース(sample2)を選択しましょう。

Playback configurationではRelative positionでAfter programを指定、Relative programは1つ目のVODソースを設定したプログラムを指定します。これで[Add Program]で2つ目のプログラムを作成します。

2つ目のプログラム作成後、Channelの詳細ページ、Scheduleタブを再度確認してみましょう。1つ目のプログラムと2つ目のプログラムが交互に並んでいるのが確認できます。

ChannelをStartさせてライブストリームを視聴してみる

以上でSource locationとChannelの作成が終わり、2つのVODソースからなる仮想ライブストリームチャンネルが作成できました。このライブストリームチャンネル視聴するために、まずはChannelをStartさせます。Channel画面で[Start]ボタンを押しましょう。すぐにChannelがStartします。

なお、MediaTailorのChannel Assemblyの料金については、このStart後、Running状態に対して発生します。AWS Elemental MediaLiveのChannelなどと同様、検証時などの停止忘れにはくれぐれも注意しましょう。

Start後、Channel stateはRunningとなります。

Runningとなったら、実際に仮想ライブストリームを視聴してみます。OutputsのタブでChannelのPlayback urlを確認します。

このURLを互換性のあるクライアントで開きます。今回はmac上のSafariブラウザで開いていました。

VODソースで指定したコンテンツが視聴できますね。このChannel Assemblyの特徴となるのが、VODソースであるのにライブブロードキャストとなる点、そして2つのVODソースがプログラムとして編成され繰り返される点になります。

まとめ

AWS Elemental MediaTailorの新機能、Channel Assemblyについて確認してみました。VODソースからプログラムを編成し、これらがループする仮想ライブストリーミングチャネルが作成できるという、非常におもしろい機能ですね。設定により広告挿入ができる、という点ではこれまでのMediaTailorの機能、Ad Insertionと同等ですが、使い方や機能を構成するリソース、APIまわりなど含めてまったく別の機能である認識です。

VODコンテンツからのライブストリーミングとしては、AWS Elemental MediaLiveでもMP4ファイルをソースとして同様のことは可能かと思います。(AWS Elemental MediaLiveで番組編成っぽいことをしてみた | DevelopersIO)MediaTailorのChannel Assembly機能の利点としてはコストの点、またはじめからVODソースのリニア配信に絞っている点などがあるのかなと考えます。これら使い分け、そして広告挿入などChannel Assemblyの機能詳細についても、追って確認していきたいと思います。