[アップデート]Amazon Chime SDK のMedia pipeline APIエンドポイントの対象リージョンが拡大されました
2024年3月25日に、Amazon Chime SDKの media pipeline API Endpointsの拡大が発表され、東京リージョンが追加されました。
Amazon Chime SDKとは
AWSが提供する、複数人でのチャット・ビデオ通話のリアルタイムコミュニケーションサービスがAmazon Chimeであり、その基盤部分である、リアルタイムなコミュニケーションを行う部分がSDKとして提供されており、独自のWebアプリケーションに組み込むことができます。
Media pipeline API Endpointsとは
Amazon Chime SDKは様々なサービスの為のエンドポイントがあり、Media pipeline APIはビデオ会議の内容を処理するAPIとなり
- 会議の録画
- RTMPエンドポイントへのストリーム
- Amazon Kinesis Video Streamへの保存
等を行うことができます。
従来はus-east等のリージョンからAPIを叩く必要があったのですが、国内リージョンから実施ができるようになりました。
ちなみにMeeting APIエンドポイントも、昨年9月に東京リージョンで使用可能になっています。 以前は会議イベントを取得する為に、バージニアでEventBridgeを設定する必要があったのですが、それも無くなりました。いい時代になりました。
実際に試してみた
ライブコネクタ機能が東京リージョンで実行可能なことを試してみます。
ライブコネクタ機能そのものは、私が籍を置くクラソルでも既に検証を行っており、この時はバージニア(us-east-1)からCloudShellでAPIを叩いていました。
前回と同様に、Amazon Chime SDKの会議からIVSに映像のストリームを行ってみます。
東京リージョンに統一することで、レイテンシーの改善が気になる所です。
前回と似たような条件で進めます。
まずは東京リージョンで、IVSにアクセスし、デフォルトの設定で配信チャンネルを作成します。 ここは、前回はバージニアリージョンで作成していました。
stream keyと、Ingest Serverが生成されます。メモしておきます。
Chime SDKで会議を作成しておき(自社のChime SDKアプリで起動しています)、MeetingIDを控えておきます。
CloudShellを開きます。
初めてmedia-pipeline APIを使う場合、サービスロールを作成しましょう。
aws iam create-service-linked-role --aws-service-name mediapipelines.chime.amazonaws.com
次に、rtmpエンドポイントと stream-key、Amazon Chime SDKで作成したMeeting IDを設定します。
{ "Sources": [ { "SourceType": "ChimeSdkMeeting", "ChimeSdkMeetingLiveConnectorConfiguration": { "Arn": "arn:aws:chime::xxxxxxxxxxxx:meeting:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx", "MuxType": "AudioWithCompositedVideo", "CompositedVideo": { "Layout": "GridView", "Resolution": "FHD", "GridViewConfiguration": { "ContentShareLayout": "PresenterOnly", "PresenterOnlyConfiguration": { "PresenterPosition": "TopRight" } } } } } ], "Sinks": [ { "SinkType": "RTMP", "RTMPConfiguration": { "Url": "rtmps://xxxxxxxxxxxx.global-contribute.live-video.net:443/app/sk_ap-northeast<span style="font-size: 13.28px;">-1_xxxxxxxxxxxx",</span></pre> <pre> "AudioChannels": "Stereo", "AudioSampleRate": "48000" } } ] }
準備が出来たら、createMediaLiveConnectorPipelineコマンドを実行します。 以前東京リージョンで実行した時は、コマンドが存在しないと怒られてしまいましたが・・・
aws chime-sdk-media-pipelines create-media-live-connector-pipeline --cli-input-json file://cli-input.json
実行できました。
IVSにも、ストリーミングされた映像が届いていることが確認できました。
ストリーミングの終了は、aws-cliで、ライブコネクタ実行時に発行されたMediaPipelineIdを使用し、delete-media-pipelineを実行するか、ミーティングを削除することで録画は終了します。
aws chime-sdk-media-pipelines delete-media-pipeline --media-pipeline-id xxxxxxxxx
レイテンシーのチェック
以前調査を行った時は、Meetingのメディアリージョンが東京リージョン、Media-Pipeline Endpointがバージニアリージョンでした。 今回の調査では、いずれも東京リージョンにまとめることができています。 物理的な距離が改善されたことにより、レイテンシーに変化はあるのでしょうか。
ちなみに前回は、細かい時間のチェックをしていなかったのですが、概ね2〜3秒ほどの遅延が発生していました。
今回の結果です。 右側が、ブラウザをOBSでキャプチャしたものをChime SDKで配信したものです。 左側が、今回MediaPipelineAPIにより、Amazon IVSにPlaybackした内容です。
大体2秒弱の遅延となっており、若干遅延が解消しているようにも見えますが、参考値としてご理解下さい。
まとめ
Amazon Chime SDKの、MediaPipeLineのリージョンが拡大したことにより、国内リージョンでも配信のAPIを叩けるようになりました。個人的にはリージョンの一元化により、CDKをシンプルにできることが有り難いと感じています。 Youtube等の大規模配信にもこのAPIは利用できますので、ぜひ一度お試し下さい。