AWS Elemental MediaLiveで強化されたファイルベースInput機能のひとつ、Dynamic Inputを使ってみた!

AWS Elemental MediaLiveのファイルベースInputに3つの機能が追加されました。この中でDynamic Input機能について実際に使い、これまでよりもシンプルに複数のMP4ファイルを指定することができる点を確認してみました。
2019.08.31

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

はじめに

清水です。AWS Media Servicesの細かなアップデートを追っていくコーナーです。本エントリで紹介するのはこちら、AWS Elemental MediaLiveのファイルベースのInputを使用する際の機能強化がされました!(2019/06/26にアップデートされた内容になります。)

Dynamic inputInput clippingSupport for an immediate input switchの3つの項目が機能として追加されているようです。AWS Elemental MediaLiveのUser Guide、Document HistoryにもJuly 25, 2019付けでこの3項目が追加されていました。

本エントリではこの中でも、Dynamic Input機能についてまとめてみます。Dynamic Input機能の特徴は、Inputをスイッチする際に参照するファイルを設定できる点にあります。MediaLiveでMP4ファイルベースのライブ配信を行うことができますが、これで番組編成のように複数のMP4ファイルを扱おうとすると、ファイルの数だけInputを作成、Channelにアタッチして、という作業が発生しました。(参照: AWS Elemental MediaLiveで番組編成っぽいことをしてみた | DevelopersIO

Dynamic Input機能を使うと、1つのInputあたりでスイッチ(スケジュールアクション)ごとに異なるMP4ファイルが指定できます。そのため、ファイルの数だけInputを作成したり、Channelにアタッチしたり、ということがなくなり、構成もとてもシンプルになるかと思います。

Dynamic Input機能を使ってみた

実際にDyanamic Input機能を使ったファイルベースのライブ配信を行ってみます。今回は検証ということでChannel ClassをSINGLE_PIPELINEで作る想定です。

AWSマネジメントコンソールのMediaLive、Inputsの画面からInputを作成していきます。Input typeMP4を選択するのはこれまでのファイルベースのInputと同じです。Input sourceの箇所ではs3://$urlPath$と入力します。この$urlPath$の部分がミソで、後ほどスケジュールを作成する際に、ここを別途指定できます。

続いてChannelを作成し、Inputとして先ほど作成したDynamic Input機能を使ったInputをアタッチしてみましょう。っと、マネジメントコンソールから1つめのInputとしてアタッチしようとすると、以下の画面のようにDynamic Input機能を使ったInputは選択できないようです。(DynamicInputTestがDynamic Input機能を使ったInputです。)

さきにDynamic Inputを使用していない、Input typeMP4を選択したInputを作成し、先にこれをChannelにアタッチします。今回はこれをStatiMP4Inputという名称で作成しました。このStaticMP4InputのSources部分は、s3://mybucket/medialive/programming/Opening.mp4というように実際のS3上のMP4ファイルが指定されています。その後、再度Dynamic Input機能を使ったInputをアタッチしてみましょう。今度はマネジメントコンソールでInputが選択できますね。[Confirm]ボタンを押すこともお忘れなく!

Channel作成後、Startする前にScheduleを設定しておきます。Dynamic Input機能を使っていないInputを指定した場合は、以下のようにInput clipping settingsの項目しか出現しません。(このInput clipping settingsも強化されたファイルベースInputの機能のひとつですね。)

対してDynamic Input機能を使用したInputを指定すると、以下のようにDynamic Input settingsの項目が出現します。ここでURL pathの項目に入力した情報が、Input作成時の$urlPath$と置き換わるわけですね。まずはs3://mybucket/medialive/programming/Program1.mp4を指定してみます。つまりURL path for source Aの箇所にはmybucket/medialive/programming/Program1.mp4を入力します。

ここからさらに、Program1.mp4のあとにProgram2.mp4Program3.mp4などと他のファイルが後に続く場合を考えましょう。これまでファイルごとにInputを作成し、それぞれをChannelに紐付け、スケジュールを作成する必要がありました。このDynamic Input機能を使えば、Inputはそのままに、このURL path部分だけを変えるだけで設定可能です。(図ではS3上のパスをすべてURL pathとしていますが、工夫すればパスを除いたファイル名だけを指定する、ということもできますね。)

まとめ

AWS Elemental MediaLiveの強化されたファイルベースInputの機能、そのうちのDynamic Inputについてまとめてみました。MediaLiveではChannelにアタッチできるInputの数などに制限があり、これまでのInputごとにMP4ファイルを指定する方法ではこの上限が課題になることも考えられたかと思います。今回のアップデート、Dynamic Input機能にてこの部分が払拭できたのではないでしょうか。また構成としてもシンプルになりますので、かゆいところに手が届く大変うれしいアップデートだと思いました。引き続きAWS Elemental MediaLiveをはじめとしたAWS Media Servicesの機能アップデートに注目していきたいと思います。