やること
MediaLiveでRTMP配信を受けて、MediaPackageでHLSを視聴します。
手順
- MediaPackageでChannelを2個作成する
- MediaLiveでInputを作成する
- MediaLiveでChannelを作成する
- 配信アプリでRTMP配信を行う
- MediaPackageで視聴を行う
- AWS MediaLive
RTMPを受信します。 - AWS MediaPackage
HLSを配信します。 - RTMP (Real Time Messaging Protocol)
Adobe社。リアルタイムに特化した動画配信プロトコル。ポート1935。 - HLS (HTTP Live Streaming)
Apple社。拡張子m3u8のプレイリストファイルを介して動画配信が可能。MacのSafari、WinのEdgeで直接視聴できます。
Memo
MediaLiveは強制的に2個作成されます。A=100,B=0でも、A=50,B=50でも料金は同じです。たぶん予備が目的かと思います。AWSは様々な理由で止まります。もちろんプロバイダーやローカルの原因もあります。障害が起きて1時間後に復旧しましたではライブ配信は取り返しがつかないので、こういう切り分け可能な仕様にしたのだと思います。この2個セットという発想が好きです。
1.MediaPackageでChannelを2つ作成する


- MediaPackageでチャンネルを2つ作ります。
- URL,Username,Passwordの3つを控えます。
2.MediaLiveでInputを作成する

- Input Type
RTMP(push)を選びます。 - Input security group
許可するIPアドレス。(例 123.456.xx.xx/32、0.0.0.0/0) - Input destinations
これがURLとKEYになります。上記の例では rtmp://~/test/test1 となり、配信アプリにはURL=rtmp://~/test、KEY=test1 になります。
もしIP縛りがないとき、URLを長くすればいいと思います。
3.MediaLiveでChannelを作成する

- Input
- IAM role
MediaLiveAccessRole(あるもの) - Input
作ったもの - Channel template
HTTP Live streaming
- IAM role
- Output
- HLS group destination A
URL,User,PassはMediaPackageで作ったもの。一度Parameterを作成することになります。同様にBも作成。 - Output
ここでは2本にしました。(960x540 1M, 1280x720 1M)
- HLS group destination A
Memo
作成された MediaLive Parameter を削除したい場合、[Ec2]-[パラメーターストア]から削除できます。
4.配信アプリでRTMP配信を行う

- MediaLiveのChannelをStartさせます。
注:MediaLiveは停止(idol)でも月1500円ほどかかります。

- フリーソフト OBS を使う場合(Mac or Win)
rtmp://~/test/test1 のとき、URL=rtmp://~/test、KEY=test1 となります。
- iOSアプリ It's my Live を使う場合(iPhone or iPad 無料)
設定画面でRTMPを選び、URLとKEYを入力します。右側の配信ボタンを押し、上部の表示でRtmpの数値が出ればOKです。
5.MediaPackageで視聴を行う

- MediaPackageでEndpointを作成して、Playで視聴ができます。
トラブルシューティング
- セキュリティで許可するIPアドレスを変更しても効かない場合があります。そのときはMediaLiveのInputとChannelを作り直してみてください。
- MediaLiveのHealthで、配信ができていなくてもNetwork In,Outは微妙に増えるので、惑わされないでください。(成功するとケタ違いに増えます)
- 配信アプリを変えたらなぜか配信ができなくなったとき、一度ChannelをStop,Startするといいかもしれません。
- MediaLiveのChannelをStopしても、月額1500円ほどかかることに注意してください。
これから
AWS MediaLiveを使えば、大手に頼らず中小でもライブ配信ができます。これで月額5千円のサービスを始められたらいいなと思ってましたが、サポート体制を考えると儲けが微妙だ。それならAWSの構築代行の方がいいかもです。
私の次のテーマは機械学習とメタ情報の自動生成。このあたりと組み合わせると、次のステップへ進めるかもしれません。