[アップデート]Amazon Chime SDK のMedia pipeline APIエンドポイントの対象リージョンが拡大されました

2024.04.02

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を控えておきます。

Gyazo

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を設定します。

cli-input.json

{
  "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は利用できますので、ぜひ一度お試し下さい。