【やってみた】AWS Media ServicesでMPEG-DASHのライブ配信をしてみた #reinvent

2017.12.22

はじめに

清水です。AWS MediaServicesのAWS Elemental MediaLiveとAWS Elemental MediaPackageを使ったライブ配信は、先日やってみたこちらのエントリで紹介しているHLS形式の他、MPEG-DASH形式とSmooth Streaming形式にも対応しています。今回はこのAWS Elemental MediaLiveとAWS Elemental MediaPackageを使ったライブ配信の構成でMPEG-DASH形式での配信を行ってみたのでまとめてみます。

やってみた

MediaLiveとMediaPackageの設定

まずは先日やってみたこちらのエントリと同様の手順でMediaPackageの設定を行います。途中、MediaPackageのChannelにてEndpointsを設定する箇所があります。先日のエントリではここにApple HLSを指定しています。今回はMPEG-DASHでの配信を行いたいので、MPEG-DASH用のEndpointを追加してみましょう。まずは1つ目のMediaPackageのChannelについて、[Add/edit endpoints]ボタンから設定を進めます。

Add/edit endpointsのページに遷移したら、画面右側のEndpoints一覧の表示箇所から[Add]ボタンを押し、Endpointを追加します。今回はわかりやすいようにIDとDescriptionに"DASHEndpoint"という文字列を入れました。

続いてPackage settingsの項目で、配信形式を選択します。ここでDASH-ISOを選択することでMPEG-DASH形式での配信が行なえます。その他の項目を確認して(今回はデフォルトで進めました)画面上部のEndpoints一覧の[Save]ボタンを押して設定を保存しましょう。

これで1つ目のMediaPackageのChannelについてMPEG−DASHのEndpointsが追加できました。

続いて2つ目のMediaPackageのChannelについてもMPEG-DASHのEndpointsを追加します。手順は同様ですね。

MediaLiveの設定については先日やってみたこちらのエントリと同様の手順となるので割愛します。配信の準備ができたら、MediaLiveのChannelを開始しておきます。

配信の確認

先日のAKIBA.awsのこっそり配信でも使用したRTMP StreamerというiPhoneのアプリを使って配信確認をしてみます。

下記の用に配信先入力箇所にMediaLiveのInputsのEndpointsの1つを入力し、Streamingを開始します。

まずはMediaPackageのPreview画面からライブ配信を確認してみます。DASH-ISOのPlayのリンクをクリックすると、Apple HLSのときと同じようにPlayerが立ち上がり、ライブ配信を確認することができます。

続いてMPEG-DASHのReference Clientを使ってライブ配信を確認してみます。2017/12/22時点の最新版である2.6.4を使いました。

MediaPackageのEndpointのURL(https://[16桁の英数字].mediapackage.us-west-2.amazonaws.com/out/v1/[32桁の英数字]/index.mpdといった形式のもの)をStream欄に入力し、Loadボタンを押すとライブ配信が視聴できますね。

さらに、配信をMediaPackageからではなくCloudFrontを経由したものにしてみましょう。CloudFrontのディストリビューションとしてはHLS配信のときと同様にHTTPS Onlyの設定を行ったディストリビューションを使用しました。

マニフェストファイルへのURLを、MediaPackageを直接参照する以下の形式から変更します。

  • https://[16桁の英数字].mediapackage.us-west-2.amazonaws.com/out/v1/[32桁の英数字]/index.mpd

ドメインをCloudFrontディストリビューションのものに変更して、以下になりますね。

  • https://d[ランダムな英数字].cloudfront.net(CloudFrontのDomain Name)/out/v1/[32桁の英数字]/index.m3u8

このアドレスを先ほどのDASH Reference ClientのStream欄に入力して、Loadボタンから再生をはじめます。MediaPackageから配信したときと同様、ライブが視聴できましたね。

まとめ

AWS Media ServicesでMPEG-DASHのライブ配信をしてみました。AWS Elemental MediaLiveとAWS Elemental MediaPackageを使ったHLS形式での設定があれば、MediaPackageのEndpoint設定にMPEG-DASH(DASH-ISO)形式を追加するだけで、とても容易に実現できますね。配信形式にどれを選ぶかはブラウザ上などでの再生プレイヤーも関連することだとは思いますが、MediaPackageを使うことで簡単に異なる形式でのライブ配信ができることがわかりました。引き続きAWS Media Servicesの多様な機能について調査していきたいと思います。