[update] AWS Elemental LinkのひとつのデバイスをMediaLiveの複数のChannel入力として使用できるようになりました

AWS Elemental Linkのデバイスはこれまで、同時にひとつのMediaLiveのChannel入力としか接続することができませんでした。この制限がなくなりひとつのLinkデバイスで同時に複数のChannel入力として使用することが可能になりました。
2020.11.30

はじめに

清水です。本エントリでお届けするアップデートはこちら、AWS Elemental LinkでひとつのデバイスがMediaLiveの複数のChannelの入力として使用できるようになりました。2020/11/11にポストされたアップデート情報のうちの1つを本エントリにて取り上げます。)

AWS Elemental MediaLive用のセットアップ済みライブエンコーダデバイスとして動作するAWS Elemental Link、これまではひとつのデバイスを接続できるMediaLiveのInputは1つのみという制限がありました。 *1今回のアップデートでこの制限がなくなり、ひとつのLinkデバイスを複数のMediaLiveのInputに接続できるようになりました。複数のInputに接続することにより、Linkデバイスが複数のChannelの入力として同時に使用できることとなります。上記のアップデート情報で例示されているように、1つのChannelではLinkデバイスから打ち上げられた映像を常時アーカイブしておき、必要に応じて2つ目のChannelで視聴者向けにライブストリーミング配信する、といったことが可能になります。Linkデバイスの活用の幅が広がりますね。

ひとつのLinkデバイスを複数のChannelのInputとして使用してみる

それでは実際に、ひとつのLinkデバイスを複数のInputに接続し、Linkに打ち上げた映像を異なるMediaLive Channelで使用してみたいと思います。アップデート情報に倣い、MediaLiveの1つのChannelではアーカイブ出力としてS3に保存、その最中にもう一つのMediaLiveのChannelを作成、このChannelからLinkデバイスにより打ち上げられた映像をライブストリーミング配信、という流れで確認をしてみます。なお、リージョンはオレゴン(us-west-2)を使用し、Single Pipelineで確認を行いました。LinkデバイスへはHDMI接続でBig Bug Bunnyの映像を常時流しておきます。

1つ目のChannel(アーカイブ出力用)の作成と使用

まずは1つ目、アーカイブ出力用のMediaLiveのChannelを作成していきます。[Create Input]からInputの作成画面に進み、Input typeをElemental Link、Input classはSINGLE_INPUT、Input device Aに使用するLinkデバイスを指定して[Create]ボタンでInputを作成します。

続いてChannelの作成に[Create Channel]ボタンから進みます。Channel classではSINGLE_PIPELINEを選択します。

Input attachmentsで先ほど作成した、Linkデバイスを関連付けたInputを選択します。

Output groupsではArchiveを指定、S3に出力されるよう設定し[Create channel]でChannelを作成します。 *2

Cahnnelが作成できたら、そのままChannelを開始しておきます。これでLinkデバイスから打ち上げられた映像はS3にアーカイブされる状況となりました。

2つ目のChannel(ライブストリーミング用)の作成と使用

続いて2つ目のChannelを作成します。こちらも[Create Input]からInputの作成画面に進み、Input typeをElemental Link、Input classはSINGLE_INPUTとします。そしてInput device Aに使用するLinkデバイスを選択しましょう。今回使用するのは1つ目のChannelにも使用したIDの末尾がc0z8のものです。ドロップダウンリストにAttachedの表示がありますが、かまわずこれを選択し、[Create]ボタンでInputを作成します。

ひとつのLinkデバイスに接続されている、2つのInputリソースが確認できます!

続いてChannelの作成です。こちらも[Create Channel]ボタンから進みます。ライブストリーミングようですので、Channel templateのLive event(MediaPackage)をベースに設定していきます。Channel classはSINGLE_PIPELINEを選択します。

Input attachmentsで先ほど作成した、ライブストリーミング用のInputを選択します。ここでもLinkデバイスのIDが確認できます。この段階で同じIDのLinkデバイスで、アーカイブ用Channelが稼働している状態ですね。

Output groupsではMediaPackageのChannel IDを指定し、[Create channel]でChannelを作成します。(MediaPackageのリソースについてはすでに作成済みのものを使用したため、設定については割愛します。)

Channelが作成できました。この間、ずっと1つ目のChannelはRunningn状態で、Linkから打ち上げ荒れた映像はアーカイブ保存され続けています。

では、2つ目のライブストリーミング用ChannelもStartさせましょう。Running状態になったら、ライブストリーミングをVideo.js(VHS)を使って視聴してみます。(ドメインがCloudFrontとなっていますが、オリジンをMediaPackageとするものです。)問題なく視聴できていますね。そしてこの間も、アーカイブは収録されたままです。

ライブストリーミングの確認ができたら、今度はライブストリーミング用Channelは停止してしまいましょう。もちろんこの間もアーカイブは収録されています。

1つ目のアーカイブ用のChannelはそれ自体を停止するまで(映像の打ち上げもととなるLinkデバイスを他のInput/Channelと接続する、操作するなどしている間でも)、アーカイブ収録を続けていました。

まとめ

AWS Elemental Linkのひとつのデバイスを複数のMediaLive Inputに接続できるようになり、同時に複数Channelで利用できるようになったアップデートについてまとめてみました。今回やってみたアーカイブとライブストリーミングを同時に行う構成ですが、1つのChannelで複数Outputを使えば、これまでのひとつのLinkデバイスの接続先がひとつのInput/Channelのみという制限があっても実現はできました。今回のアップデート、複数のChannelでも同じLinkデバイスと接続できるということで、すでに稼働しているChannelを停止などせずに追加で別Channelが同一ソースに対して作成、編集できる点がポイントかなと思います。

脚注

  1. 実際に複数のInputに接続したい、というケースに出会さなかったのですが、MediaLinkのユーザーガイドに以下の記載が(2020/11/30現時点では。おそらくドキュメントへの反映がされていない。)あるので、Linkデバイスの接続できるInputは1つのみという制限があったと考えています。

    各 MediaLive デバイスは 1 つの入力にのみ接続でき、その入力は Elemental Link 入力であることが必要です。

    AWS Elemental Link デバイスの使用 - AWS Elemental (AWS Elemental)MediaLive

    Each MediaLive device can be attached to only one input, and that input must be an Elemental Link input.

    Working with AWS Elemental Link devices - AWS Elemental MediaLive

  2. 本エントリ最後に記載する、アーカイブしたファイルのスクリーンショットをみるとわかるのですが、この設定だとファイル名の先頭が「_」になってしまうので注意しましょう。後になって気がつきました……。