こんにちは、矢野(喬)です。
2021/3/5更新でAWS Elemental MediaLive(以降MediaLive)にワークフローウィザードの機能が追加されたようですので早速試してみました。
これまでMediaLiveを使った配信構成を作る場合、MediaLiveの設定項目の多さや、それ以外にもMediaPackageやCloudFrontなどの他リソースとの組み合わせも考える必要があることから、気軽にMediaLiveを使ったライブ配信をするには少々ハードルが高かったのですが、今回のワークフローウィザードはその大変さをかなり削減してくれそうです。
構成図
MediaLiveワークフローウィザードを使って、MediaLive→MediaPackage→CloudFrontの構成を一気に作ってみます。
CFnのスタックとして管理されるので環境削除の際も消し忘れが無くなって助かりますね。
構築順
1.MediaLiveワークフローウィザードによるライブ配信環境作成
2.OBS設定と視聴確認
3.環境削除
- OBSの設定は本記事ではストリーミングの設定以外省略します
- IAMロール作成以外は極力新規作成で進める方針とします
手順詳細
1.MediaLiveワークフローウィザードによるライブ配信環境作成
1-1.AWS Elemental MediaLiveに移動し、左ナビゲーションバーからWorkflow Wizardを選び、Create Workflow をクリック
1-2.Workflow Detailsを設定
以下項目を入力し「Next」をクリック
- Workflow name
- 今回は medialive-wf としました
- MediaLive Channel class
- SINGLE_PIPELINE とします
- IAM Role
- MediaLive用のロールを選択します。存在しない場合はCreate role from templateで作成し指定
1-3.ビデオソースの選択
以下項目を入力し「Next」をクリック
- Choose an input type
- RTMP(Push)
- Select or create an input
- Create a new input
- Input destinations
- 本記事では以下の通り設定
- Application name
- live
- instance
- wf
- Input security group
- 作成する場合は Create
- 本記事では自端末のグローバルIP/32で作成し、Use existingで選択しています
- 作成する場合は Create
- Maximum input bitrate
- 10MBPSとしました
1-4.ビデオ出力の追加
MediaPackageを新規作成することとして進めます
以下項目を入力し「Next」をクリック
- Choose as many output groups as you want.
- MediaPackage を選択
- Video Quality
- STANDARDのまま
- Send this output to a channel on MediaPackage
- Create a new channel on MediaPackage を選択
- 720p30 以外を削除します
- Create a new channel on MediaPackage を選択
1-4.設定の確認後ワークフローの作成
MediaPackageのエンドポイントはHLS、CMAF、DASHと3種類作られるみたいですね
後は作成されるのを待つだけです
2.OBS設定と視聴確認
2-0.前述の通りOBSの基本設定は省力します
2-1.配信先のURLをOBSに設定
MediaLiveのInput(本記事ではmedialive-wf-Input)から、Endpointsに記載されているURLをメモし、OBSに以下の通り記載
2-2.MediaLiveで作成したワークフローから、「Start workflow」をクリック
Channel state が runningに変わります
2-3.OBSで配信開始
2-4.視聴確認
MediaPackageのEndpoint(本記事ではmedialive-wfCMAFEndpointなど)より、PreviewやCloudFront用のURLにて確認します
見れた見れた
3.環境削除
3-1.「Delete workflow」を押し、ワークフローで作成した環境をまとめて削除
Start していたワークフローはStopで止め、不要になったらDeleteで削除をします。
CloudFormationでも削除の様子が分かります。こうして確実にリソース状況を把握できるのはとても良いですね
そして削除完了し、すっきりしました
CloudFrontのディストーション削除がやはり一番時間が掛かりましたね(数分)
IVSとの比較
映像を配信するだけならお手軽にライブ配信環境を用意できるIVSとの違いを少し考えたいと思います。
Amazon Interactive Video Service
環境構築に掛かる時間
認証やMetadata等の作り込みをしないシンプルなライブ配信構成だけであればIVSは2分程度で、
今回のMediaLiveのワークフローウィザードですとCloudFront込みで10~20分、MediaPackageを予め作っておいてMediaLive周りだけですと5~10分くらいで作ることができました。
IVSは本当に数クリックだけで揃うことに比べたらまだ少々手間はありますが、MediaLiveへの映像取り込みの選択などのカスタマイズ余地をある程度残しつつ簡単に環境が作れるワークフローウィザードは、取っ掛かりには十分すぎる親切機能と言えそうです。
料金
どういう構成にするかにもよりますが、1時間数十人の視聴とした場合数百円でどちらも収まり、IVSが少しだけ高いといったところと予想されます。
出力をMediaPackageからMediaStoreに変えれば更に優位性が高まりそうですね。簡単だけどちょっと高めなIVS、多少手間がかかるけれどMediaLive経由で考えていてIVSを選んでいた方には今回の更新でMediaLive側に傾くやもしれません。
遅延
MediaPackageやMediaStoreを東京リージョンで利用している場合は15~30秒くらいの遅延に対して、IVSは未だ東京リージョンが使えずオレゴンリージョン等になりますが、超低レイテンシーの設定であれば5~10秒の遅延で配信が可能です。
IVSが東京リージョンにきた場合は紹介の通り遅延2秒かそれ以下というところまで縮められるのかどうか、とても楽しみな要素です。
制御
IVSはTwitchと同様の技術で簡単にライブ配信環境を整えられるサービスであり、認証機能以外の映像の暗号化や細かい制限などは現状出来ません。
IP制限だったり映像の暗号化、アーカイブなどの細かいカスタマイズはやはりMediaLive経由の環境に分があると言えます。
おわりに
ある程度行うことを絞られてはいますが、ワークフローウィザードの登場で更にライブ配信環境をAWSで作成するハードルも下がり、じゃあちょっと試してみるかと思われる方も増えるだろうなと思える良いアップデートだと感じました。
作る手間と環境を掃除する手間の両方を手伝ってくれるのは助かりますね。私も良く消し忘れてしまうので上手く使っていきたいところです。
ありがとうございました。