AWS Elemental MediaLiveとはフルマネージドなライブ配信サービスです。
https://aws.amazon.com/jp/medialive/
OBSなどの配信ソフトがあれば10分ほどの設定でライブ配信を始められる素晴らしいサービスです!
私はMediaLiveと自社開発のサービスを組み合わせて使っていますが、注意点がいくつかあるので書いていきます。
※これから書くのは2019/03/22時点でのMediaLiveの仕様です。
ライブ配信までの流れ
ライブ開始まで時間かかるぞ!
ライブ配信のためにはチャンネルを作る必要があるがインスタンスが立ち上がるまでに1分弱くらいかかる。
アプリとMediaLiveを同期的に連携させるときは設計に考慮が必要だ。
よくあるパターンで考えてみよう。
これを同期的にやろうとするとダメだ。
Apigatewayは29秒でタイムアウトするのでMediaLiveでチャンネルを作れない。
なのでアプリからSDKでMediaLiveと連携したほうがよい。
チャンネル作成で時間がかかるのでそもそも非同期でライブ開始させるような設計のほうが良さそうだ。
Idle中もお金かかるぞ!
ライブ配信を終えてもチャンネルをIdle状態のまま放置してるとお金がかかるぞ!
ライブが終わったらこまめに削除しよう。
手動で作り直すのは壮絶に面倒なのでLambdaなどで自動化しておこう。
当たり前だがテストにもお金かかる!
テストでチャンネル作ったり配信したりしたらあっという間に250ドルかかっていた!!!
気を付けよう。
ChannelとPushInputの作成数に上限がある!
Channelは5個
PushInputも5個までしか作れない。
(RTMPでLive配信アプリからMediaLiveにPushする場合はこちらに該当)
不特定多数のユーザーが任意のタイミングでLive配信するようなサービスの場合、
1人につきChannelを1個使うので同時に5人までしかLive配信できない。
上限緩和申請は可能。今回の案件ではChannelとInputを100個まで緩和してもらった。
サムネイル画像に気をつけろ!
MediaLiveはライブ配信の開始と同時にサムネイル画像を作成できます。
jpegしか対応していない
pngにしたい時とかはLambdaで変換したりしよう。
ETSとかはjpegとpngを選べますね。
S3のバケット名に縛りがある
ライブ配信の出力先にS3やMediaStoreを指定できますが、S3のバケット名に . (ドット)が入ってるとエラーになります。実在するドメインならドットが入っててもOKです。
インターバル設定
画像出力のインターバルを設定する必要があります。これは1~3600まで設定できますが、1にすると1秒に一枚画像を出力します。
最初の1枚だけ欲しいとかはできないが、3600秒にすると最小枚数にできる。
アーカイブ出力はtsファイル形式のみサポート
Archive OutputGroupでLive配信のアーカイブ保存ができるが、tsファイルしかサポートされていない。
mp4が欲しいよ。