Azure 初心者が Azure Media Services + OBS でライブ配信をやってみた

2020.07.06

こんにちは、大前です。

 

普段は AWS Media Services ばかり触っておりますが、Azure にも Azure Media Services という動画配信に関するサービスがある為、今日はこちらを触っていきたいと思います。

Azure は完全に素人であるため、探り探り進めていきます。

構成

ローカル PC の OBS から動画配信を行い、Azure Media Services を経由して HLS や DASH 等のストリーミング形式でライブ配信を行います。

また、Azure Media Services を作成する場合はアーカイブファイルの保存先として Azure Storage が必須となるため、こちらも作成します。

 

やってみた

1. Azure Media Services の作成

まずは Azure Media Services を作成していきます。AWS では AWS Elemental MediaLive や AWS Elemental MediaStore など役割別にそれぞれリソースが存在しますが、Azure では Azure Media Services という1つのサービスをまずは作成します。

 

サービス一覧から "Media Services" を検索し、開きます。

 

サービスページを開いたら、「メディアサービスの作成」をクリックします。

 

下記の様な画面が開くので、それぞれ以下を入力等します。

  • アカウント名
    • よしなに入力します
    • 今回は "testlivewithobs" とします
  • リソースグループ
    • Azure では作成するリソースをリソースグループという単位でまとめます
    • 今回は "resource-group-testlive" とします
  • ストレージアカウント
    • 保持している Azure Storage のうち、Media Services で使用するリソースを選択します
    • この時点で特にリソースを作成していないので、後述する手順で作成します
  • 同意欄
    • チェックを入れます

 

「ストレージアカウント」をクリックすると以下の画面が開くので、「+新規作成」をクリックします。

 

名前に "testlivewithobs" を入力し、他はデフォルトで「OK」とします。

 

ストレージアカウントの作成が完了したら下記の Media Services の作成画面に戻ってくるので、画面下部の「作成」をクリックします。

 

2. ライブイベントの作成・開始

Azure Media Services を作成したら、この中で色々な設定を行っていきます。

まずは、「ライブイベント」というものを作成します。これは、動画配信の入力(今回は OBS からの入力)を受け付け、必要に応じてエンコード等を行います。

 

作成した Azure Media Services を開き、左側メニューの「ライブストリーミング(新規)」を選択した状態で「+ライブイベントの追加(新規)」をクリックします。

 

ライブイベントの作成画面が開くので、以下項目を設定します。

  • ライブイベント名
    • よしなに入力します
    • 今回は "test-live" とします
  • クラウドエンコード
    • "Standard(最大 720p)" を選択します

 

他の項目はデフォルトのまま画面下部の同意文にチェックを入れ、「確認および作成」をクリックします。

 

確認画面に遷移するので、「作成」をクリックするとライブイベントが作成されます。

 

3. ライブイベントへのテスト配信

ライブイベントが作成できたら、OBS から入力が出来るかテストしてみます。

 

ライブイベントの開始

作成したライブイベントを開き、「開始」をクリックします。

 

ポップアップが出るので、こちらも「開始」をクリックします。

 

ライブイベントが開始されると、このような画面になります。

 

OBS の設定

Azure Media Services からは一旦離れ、配信元である OBS に関する設定をローカル PC で行います。

OBS で配信する際の設定手順に関する公式ドキュメントがありますので、詳細はこちらを参照頂ければと思います。

OBS を使用して Azure Media Services のライブ ストリームを作成する

 

今回は、下記のように、以前のブログで作成したタイムコード付きの動画と、Big Buck Bunny の動画を配置した映像を配信します。

 

「設定」>「配信」より、映像の配信に関する設定を行います。

  • サービス
    • カスタム
  • サーバー
    • Azure Media Services のライブイベント開始後に表示された "入力URL"
  • ストリームキー
    • 任意の文字列

 

配信開始

設定が完了したら、OBS 側で「配信開始」をクリックして配信をスタートさせます。

特に問題がなければ、ライブイベントのプロデューサービューにて映像が再生されるはずです。

うまく表示されない場合は、画面のリロードや、「プレーヤーの再読み込み」を行ってみてください。

 

4. 出力の作成

入力側が問題なく設定できたので、出力側を設定していきます。

画面右側より、「+出力の作成」をクリックします。

 

出力の作成画面が表示されます。特に設定は変更せず、画面下部の「次:ストリーミングロケーターの追加>」をクリックします。

 

こちらも特に設定は変更せず、「作成」をクリックします。

 

クリック後、「ストリーミング URL の作成」という画面が表示されるので、ストリーミングエンドポイントとして "default" を選択して完了をクリックします。

 

Azure Media Services では、ストリーミングエンドポイントというものを作成する事で、エンドユーザに配信を行うことが出来るようになります。

 

このストリーミングエンドポイントについても、明示的に開始を行う必要があります。

下記の様な画面が表示されているはずなので、「ストリーミングエンドポイントを開始する」より「開始」をクリックします。

 

ストリーミングエンドポイントを開始しただけでは、先ほど作成した出力と紐づいていない状態となります。

「ソースの変更」より、「ストリーミングエンドポイント」と「出力」をそれぞれ選択して更新します。

 

ここまで設定を行うと、画面右側の「対象ユーザー ビュー」でも配信している映像が確認できる様になります。

 

これで、今回の Azure Media Services の設定は完了です。

5. ライブ配信を確認

では、Azure 側の設定が完了したので配信が行えているかを確認していきます。

配信のエンドポイントは、「対象ユーザー ビュー」の右下にある「ロケーターの表示」より確認できます。

 

「ロケーターの表示」をクリックすると下記の様な画面が表示され、各 URL が確認できます。

デフォルトでは HLS, DASH, SmoothStreaming の 3種類のストリーミング形式で配信エンドポイントが作成されます。

 

上記 URL を使って HLS と DASH について再生確認をしていきます。

HLS

HLS の配信確認には VideoJS HLS を使用します。

Azure の画面からコピーした URL を貼り付けてロードを行うと、無事再生されました!

 

DASH

DASH の配信確認には Dash Javascript Player を使用します。

同じく Azure の画面からコピーした URL を貼り付けてロードすると、こちらも無事再生されました!

おわりに

Azure Media Services を使ったライブ配信をやってみました。

動画配信の基本的な部分は同じでも、Azure Media Services の概念などを理解する必要があり、なかなか大変でした。

Azure Media Services は他にも色々と機能があるので、今後も触っていきたいと思います。

 

確認後は配信とリソースを削除する事をお忘れなく。

 

以上、AWS 事業本部の大前でした。

参考