Photo by Cooler8 from Shutterstock
ライブ配信は、視聴者をリアルタイムで惹きつけ、イベントを中継するうえで欠かせない手段になりました。Vimeo、YouTube Live、Facebook Liveといったプラットフォームの普及にともない、高品質で信頼性が高く、スケーラブルなライブ配信ソリューションへのニーズは急速に高まっています。Amazon Web Services(AWS)はライブ配信向けの強力なツール群を提供しており、その中核を担うのが、放送品質のライブ動画処理サービスAmazon Elemental MediaLiveです。
ライブイベント、スポーツ、ニュース、エンターテインメントなど、どのような中継であっても、視聴者に途切れのない快適な視聴体験を届けることが何よりも重要です。とはいえ、信頼できるライブ配信ワークフローを一から構築・運用するのは決して簡単ではありません。そこで役立つのがAWS Elemental MediaLiveです。クラウド上で堅牢かつスケーラブルなライブ動画処理を実現し、リアルタイムで視聴者とつながりながらエンゲージメントを高め、印象に残るコンテンツを届けられます。さらに、トランスコーディング、パッケージング、暗号化といった高度な動画処理機能を備え、世界中のさまざまなデバイスやプラットフォームへ高品質な映像をお届けします。
本記事では初心者の方に向けて、AWS Elemental MediaLiveのWorkflow Wizard機能を使い、わずか数分でAWS上にライブ配信ソリューションを立ち上げる方法と、その過程で押さえておきたい基本知識をご紹介します。それでは始めましょう。

アーキテクチャのワークフロー
**ワークフローを作成する**
ステップ1:ワークフローを作成する
AWS Elemental MediaLiveのコンソールを開き、「Workflow wizard」→「Create workflow」の順にクリックします。

Workflow wizard

Create workflow
ステップ2:基本情報を入力する
Workflow Name(例:myfirst-medialive-channel)→ MediaLive Channel Classを選択(例:Single pipeline)→ IAMロール(例:Create a role(まずロールを作成し、それを選択))→ Nextをクリックします。

ステップ2
注:single pipelineチャンネルでは、ストリームをプッシュするための静的エンドポイントが1つ提供されます。一方、standardパイプラインチャンネルでは静的エンドポイントが2つ提供されます。例:rtmp://3.216.59.247:1935/myfirst-medialive/input-1
ステップ3:動画ソースを選択する
3.1:入力タイプを選択する

3.1:入力タイプを選択する
入力ソースには現在4つの選択肢があり、用途に最も適したものを選びます。本記事ではデモとしてRTMP(push)を利用します。
- Elemental Link — カメラや映像制作機材などのライブ動画ソースをクラウド(MediaLive)に接続するためのエンコードデバイスです。

Elemental Linkデバイスのオプション
2. MediaConnect — 信頼性、安全性、柔軟性に優れたライブ動画用のトランスポートサービスです。放送局やコンテンツ所有者がライブ動画ワークフローを構築し、パートナーや顧客と安全にライブコンテンツを共有できます。チャンネル運用やライブイベント配信、価値の高いライブ動画ストリームをAWSクラウドへの取り込み・経由・送出するシーンで活用できます。
- MP4 — 非ストリーミングのMP4ファイル(.mp4拡張子)をS3から直接Elemental MediaLiveチャンネルへプッシュし、ライブ放送として配信できます。
4. RTMP(push) — スマートフォンやデスクトップからストリーミングコンテンツを取り込めます。お好みの配信ソフトウェアを利用できます。
3.2:入力を選択または新規作成する

3.2:入力を選択または新規作成する
注:入力を作成する際、Application nameとApplication instanceには任意の名前を設定できますが、配信時のストリームエンドポイントとストリームキーに相当するものと考えてください。推測されにくい複雑な名称にしておくのがおすすめです。さらに、エンドポイントへのストリームプッシュを制限するセキュリティ機構として、セキュリティグループ(ステップ3.3)も用意されています。
3.3:input security groupを作成または既存のものを使用する — MediaLiveチャンネルへのストリームソースを制限するには、許可する入力元をネットワークCIDRレンジで指定します。例:
- 特定のマシンのIPアドレス
- スタジオのネットワークレンジ
- オンプレミスまたはVPCのCIDRブロック
これにより、信頼できるネットワークだけがチャンネルへコンテンツをプッシュできるようになります。例:

3.3:input security groupを作成または既存のものを使用する
3.4:入力コーデックを選択する — 本記事ではデフォルトのままにしていますが、MediaLiveが対応する映像・音声入力コーデックの一覧はこちらから確認できます。

3.4:入力コーデックを選択する
ステップ4:動画出力を追加する
4.1:動画の送信先を選択する — 送信先には、MediaPackage、MediaStoreへのHLS、さらにFacebook、YouTube、Twitch TVなどのSNSプラットフォームといった複数の選択肢があります。必要に応じて1つまたは複数を選択し、動画品質はStandardまたはEnhancedから選択します。
注:Enhanced video qualityを有効にすると、ビットレートを上げずにより高品質な映像を出力できます。この設定はワークフロー内のすべての出力に適用されます。なお、本機能は追加料金の対象です。

4.2:MediaPackageを送信先に設定する

視聴者の環境に合わせて解像度やフレームレートを追加することも可能です。

追加の解像度とフレームレート
ステップ5:確認して作成する
ワークフローのステータスが「create in progress」になっているはずです。これは、選択したオプションに基づいてCloudFormationテンプレートが生成され、デプロイが進行中であることを示しています。

ワークフロー進行中

CloudFormationによるワークフローのデプロイ進行中
ステップ6:詳細を確認する
6.1:ワークフロー完了 — この時点ではまだワークフローを開始していない点にご注意ください。Idle状態になっており、これはMediaLiveチャンネルがまだ起動していないことを意味します。

6.2:CloudFormationのデプロイ完了 — CloudFormationにより複数のリソースが正常にデプロイされました。

Workflow WizardによってCloudFormationテンプレートの作成・デプロイが完了し、各コンポーネントが連携した状態で構築されました。ワークフローの構成は次のとおりです:Live Source → RTMP Push → MediaLive Input → MediaLive Channel(トランスコーディング)→ MediaPackage(パッケージング)→ CloudFront(グローバル配信)→ エンドユーザー
AWS Elemental MediaLiveはRTMP入力を受け取って処理し、選択した複数の出力形式へトランスコードします。例(ステップ4.2):
- 1080p60(1920x1080、60fps、最大6Mbps)
- 1080p30(1920x1080、30fps、最大5Mbps)
- 720p60(1280x720、60fps、最大5Mbps)
- 720p30(1280x720、30fps、最大3Mbps)
- 480p30(854x480、30fps、最大1.5Mbps)
- 240p30(426x240、30fps、最大750Kbps)
AWS Elemental MediaPackageはパッケージングを担います。MediaPackageチャンネルは処理済みのすべてのストリームを受け取り、トランスコードされたコンテンツから3種類の出力(エンドポイント)を提供します。プレイリストやマニフェストの生成・管理もMediaPackageが行います。
- HLSエンドポイント(Appleデバイスや一般的な互換性向け)
- DASHエンドポイント(Androidなど他のDASH互換プレーヤー向け)
- CMAFエンドポイント(モダンなストリーミング向けのCommon Media Application Format)
AWS CloudFrontがストリームをユーザーへグローバルに配信します。
ワークフローを開始してElemental MediaLiveチャンネルへのストリーム送信に進む前にお伝えしておくと、1つのMediaLiveチャンネルには最大20の入力をアタッチできます。ただし、入力タイプによってはいくつかの制約があります。用途はさまざまで、たとえばライブ放送中にMediaLiveチャンネルの入力を切り替えたいケースが考えられます。最初のストリームではイベント開始前にループ動画を流し、開始時に2つ目のストリームへ切り替えてライブ配信する、といった使い方です。こうした入力切替はMediaLive scheduleで実現できますが、これは別の機会に詳しく取り上げます。
それでは、入力エンドポイントの情報を控えておきましょう。Workflow Wizard、MediaLive Channelの詳細、Inputセクションのいずれからも確認できます。
例:rtmp://3.216.59.247:1935/myfirst-medialive/input-1
本記事では配信ツールにOBS Studioを使っていますが、お好みの配信ツールでも問題ありません。
チャンネルにメディアを配信する
ステップ7:OBSを設定する
7.1:OBSで配信ソースを設定する

ソース
7.2:OBSの配信先を設定する
入力エンドポイントは rtmp://3.216.59.247:1935/myfirst-medialive/input-1、設定値はApplication name:myfirst-medialive、Application instance:input-1(ストリームキー)です。

配信先
ステップ8:Workflow Wizardを開始する
Elemental MediaLiveチャンネルがIdle状態ではなくRunning状態になっていることを確認してください。

チャンネルがオンライン
ステップ9:ライブ動画を配信する
OBS Studioで「配信開始」をクリックし、RTMPプッシュを開始します。

HLSエンドポイントを開き、「Preview Player」をクリックすると、ライブ配信を視聴できます。

HLSエンドポイント

MediaLiveを使ったライブ配信
これで完成です。AWSでのライブ配信のセットアップは、決して難しいものではありません。MediaLiveのWorkflow Wizardを使えば、何時間もかけず数分で配信を稼働させられます。テンプレートをカスタマイズして再利用することも可能です。
**クリーンアップ**
Workflow Wizardを開き、対象のワークフローを選択 → Stop Workflow → Delete Workflowの順に操作します。
配信プラットフォームを構築している方も、AWSのメディアサービスを試してみたい方も、本チュートリアルがMediaLiveのセットアップを少しでもわかりやすくする一助になれば幸いです。クラウドアーキテクチャ設計からインフラ自動化まで、DoiT Internationalはクラウドインフラのモダナイズを支援する幅広い専門知識をご提供します。AWSのメディアサービス活用を最適化したいとお考えなら、こちらからお問い合わせください。クラウドエンジニアリングソリューションの詳細をご案内します。