ただの配信エンジニアが配信プラットフォームを作ろうとする話(Amazon IVS編)

1 min read読了の目安(約1500字

長年、ライブ配信の現場から様々なプラットフォームに映像を配信してきたmasuibassが、頑張ってなんちゃって配信プラットフォームを作ろうとするお話です。

Amazon Interactive Video Service(IVS)

フルスクラッチでは到底立ち行かないので、マネージドサービスを利用します。早速、AWS CLIで作成して行きます。

aws ivs create-channel --name <チャンネル名> --profile <AWS CLIのプロファイル> --region <リージョン>

チャンネル名

チャンネル名は指定しなくても作成が出来ます。

AWS CLIのプロファイル

プロファイルを指定しなければdefaultに設定してあるアクセスキーが使用されるはずです。自分はぼーっとしてプロファイルの指定を忘れて誤って作業してしまったことがあるので、defaultの設定はしていません。(以降省略します)

リージョン

Amazon IVSは執筆時点で、下記3リージョンにしか展開されていません。(以降省略します)

  • us-east-1
  • us-west-2
  • eu-west-1

レスポンス

{
    "channel": {
        "arn": "<チャンネルのarn>",
        "name": "<チャンネル名>",
        "latencyMode": "LOW",
        "type": "STANDARD",
        "ingestEndpoint": "<RTMPの送信先>",
        "playbackUrl": "<プレイヤーの受信先>",
        "authorized": false,
        "tags": {}
    },
    "streamKey": {
        "arn": "<ストリームキーのarn>",
        "value": "<ストリームキー>",
        "channelArn": "<チャンネルのarn>",
        "tags": {}
    }
}

配信の現場に必要な情報が丸っと返ってくるのは、とても使いやすいですね。プレイヤー側に設定が必要な情報も返って来ています。channelstreamKeyはそれぞれ別のリソースで、紐づいている感じです。

ちなみに後からAWS CLIで配信用の情報を取得するには、下記の手順が必要になります。

# channelをlistして、該当のchannelのarnを取得
aws ivs list-channels

# channelArnから、紐づいているstreamKeyをlistして取得
aws ivs list-stream-keys --channel-arn <チャンネルのarn>

# channelをgetして、playbackUrlを取得
aws ivs get-channel --arn <チャンネルのarn>

ここまでで、配信に必要なAmazon IVSのアセットは作成が出来ました。とっても簡単!AWSマネジメントコンソールでは、チャネルの作成というオレンジのボタンを2回押すだけです。

次回はReactアプリの中にAmazon IVS Playerを実装して行きます。HTML5プレイヤーとかVideo.jsとかでも受信できるんですが、超低レイテンシを実現するためには、Amazon IVS Playerが必要です。