AWS Elemental LinkからAWS Elemental MediaLiveを経由してYouTube Liveでライブ配信をしてみた!

AWS Elemental LinkはAWS Elemental MediaLiveを経由することで様々な動画配信プラットフォームにも連携可能です。今回はYouTube Liveと連携させてライブ配信をしてみました。
2020.06.30

はじめに

清水です。AWS Elemental MediaLive用のセットアップ済みライブエンコーダデバイスとして動作するAWS Elemental Link、映像の直接の打ち上げ先としてはMediaLiveのみとなりますが、MediaLiveのRTMP出力機能を使うことでYouTube Liveなど様々な動画配信プラットフォームとの連携も可能です。

今回はMediaLiveのRTMP出力先をYouTube Liveとし、LinkデバイスからMediaLiveを経由してYouTube Liveでライブ配信する、という構成を試してみました。

YouTube Liveの配信の作成

まずはYouTube Live側の準備をします。YouTube Studioで「ライブ配信を開始」から「エンコーダ配信」で配信を作成します。

エンコーダ配信を作成後、生成されるストリームキーとストリームURLは後ほどMediaLive側に設定するので控えておきます。

AWS Elemental MediaLiveのリソース作成

続いて、MediaLiveでInputとChannelのリソースを作成していきます。LinkデバイスをOrderしたAWSアカウントであること、またOrder時に指定したリージョンであることを確認してリソース作成を進めます。

MediaLiveのInputの作成

マネジメントコンソールのMediaLiveのページ、左側のメニューからInputsへ進み、[Create Input]ボタンで進みます。

Create input画面、Input detailsの項目でInput nameを入力します。またInput typeではElemental Linkを選択します。Input deviceの項目が現れますので、デバイスIDを元に該当するデバイスを選択します。そして[Create]でInputの作成となります。

作成後は以下のようなInput詳細ページに遷移します。LinkデバイスがAWSと接続済み、映像信号も入力されている状態であれば以下のようにサムネイル画像も表示されます。(今回はLinkデバイスにMacのデスクトップ画面を入力しています。)

MediaLiveのChannelの作成

Inputが作成できたら、続いてMediaLiveのChannelリソースを作成します。MediaLiveのマネジメントコンソール、左側のメニューからChannelsページに移動、[Create channel]ボタンで進みます。

Create channel画面、Channel and input detailsのGeneral infoの項目でChannel nameを入力、またIAMロールを指定します。IAMロールが存在しない場合、こちらのエントリの「MediaLive用のIAMロールが存在しない場合」の項目を参考に作成しましょう。

Channel templateの項目では、選択できるTemplateのうちRTMP Pushを選択します。

以下のように確認のダイアログが現れますが、[Confirm]で進めます。

Channel classについて、デフォルトではSTANDARDが選択されていますが、SINGLE_PIPELINEを選択します。またInput specificationsについてはデフォルトのまま進めます。

この後、[Create channel]はまだ押さずに、左側の項目のInput attachmentsの[Add]ボタンから、先ほど作成したMediaLiveのInputとの紐付けを行います。

Attach inputの画面に遷移します。Choose an inputから先ほど作成したInputを選択します。Attachment nameを必要があれば変更して[Confirm]ボタンを押します。 この[Confirm]ボタンを押すまで(Inputを選択しただけでは)、Input attachmentsは設定されませんので注意しましょう。

Attach inputの[Confirm]ボタン押下後、以下のようにInputがアタッチされている(左側、Input attachmentsの項目にInputが追加されている)ことを確認します。続いて出力の設定を行いますので、Ouptput groupsの1. YouTube (RTMP) の Output 1: destination1の部分(リンクになっています)をクリックします。

Output 1、RTMP destination AのStreaming Nameの項目に先ほどのYouTube Liveでエンコーダ配信を作成した際に生成されたストリームキーを入力します。URLについては念のためストリームURLと一致していることを確認しましょう。

続いて他にoutput groupsに設定されているFacebook、TwitchへのRTMP出力について、今回は使用しないので削除しておきます。2. Facebook (RTMP)3. Twitch (RTMP)の部分がそれぞれリンクになっているのでクリックして設定ページに遷移、右上に[Remove]のボタンがあるのでこちらからOutputの削除を行います。

1. YouTube (RTMP)のみの状態にして、[Create channel]ボタンでChannelを作成します。

以上でAWS Elemental MediaLiveのリソース作成は完了です。

ライブ配信の開始

YouTube LiveとAWS Elemental MediaLiveの設定ができたら、実際にライブ配信を開始してみます。

AWS Elemental Linkデバイスの準備

Linkデバイスについては電源、有線LANケーブル、そして映像信号を入力して稼働状態にしておきます。今回は映像信号としてMacのデスクトップ画面をミラーリングモードでHDMI出力してLinkデバイスに入力しました。Macのサウンド出力もHDMIに出力されるよう設定しています。

Macのデスクトップ側、ライブ配信中には、VLC media playerBig Bug Bunnyの4K動画を再生するよう準備しました。

MediaLiveのマネジメントコンソール画面、左側メニューのDevicesの項目から該当するLinkデバイスの詳細ページに進み、ストリーミングされる映像のサムネイル静止画が表示されていること、Connection stateがConnected、Device stateがIdleとなっていることを確認しておきます。

AWS Elemental MediaLiveのStart

続いてMediaLiveのChannelをStartさせます。MediaLiveのChannleは作成直後はステータスがIdleの状態です。これをStartさせることで、Running状態に遷移し、実際に映像が出力先(今回であればYouTube Live側)に書き出されます。

以下がステータスがRunningになった状態です。

YouTube Liveでライブ配信の開始

YouTube Live側でLinkデバイスに入力している映像がプレビュー表示されていること、また接続状態が良好であることを確認します。

右上の[ライブ配信を開始]ボタンを押してライブ配信を開始しましょう。以下のようにライブ配信中の状態になります。

プレイヤー部分を右クリックして視聴用URLを取得し、Chromeの別ユーザで開いてみました。

以下、ライブ配信ではありませんが、実際に今回の検証を行ったYouTubeの動画になります。Big Bug Bunnyの4K動画をMac側で再生、その映像(Macのデスクトップのミラーリング)をライブ配信しているかたちです。

ライブ配信後の後片付け

ライブ配信が完了したら、まずはYouTube Live側の右上、[ライブ配信を終了]ボタンをクリック、確認ダイアログに答えてライブ配信を終了します。

その後、MediaLiveのChannelについても忘れずにStopしておきます。

Linkデバイスからの映像打ち上げを終えてもRunningのまま放置してしまうとMediaLive側での料金が発生し続けます。またMediaLiveのInput、ChannelについてはIdle状態でも料金が発生します。長期間使用する予定がないなどの場合はいちどInput、Channelリソースを削除しておきましょう。削除は作成時とは逆順、Channelから先に行う必要があります。

まとめ

AWS Elemental LinkからAWS Elemental MediaLiveを経由して、YouTube Liveでライブ配信をしてみました。これはLinkデバイスというよりMediaLiveの強みかと思いますが、RTMP出力機能を用いて様々な動画配信プラットフォームに同時に連携が可能です。本エントリでは設定を削除してしまいましたが、YouTube Liveと同時にFacebook Live、そしてTwitchなどへのライブ配信が1台のLinkデバイスで実現できます。もちろんAWSインフラでの独自プラットフォームによる動画配信と共存させることも可能ですし、またライブ配信と並行してAWSのAI系サービスと連携させる、といったことも実現可能です。そして何よりこのMediaLiveと非常に簡単に連携できる点が、Linkデバイスの特徴であるかと思います。

参考

AWS Elemental MediaLiveのRTMP出力機能について以下エントリにまとめています。YouTube Live側の設定画面の変更はありますが、ほとんど(特にMediaLiveの設定としては)手順は同一になります。

AWS Elemental Linkを使ったAWSインフラでのライブ動画配信については、以下エントリを参照ください。